I am facing problem in generating WSDL. I want to create SOAP web service which generate json string. Below pojo classes are referenced from another web project into my web service project. I write generated json string on servlet response object which is created by using WebServiceContext & it is annotated with @Resource annotation.
I also tried to debug web service method (parameterized annotated with @WebParam), pojo but project is not starting in debug mode. Before calling web method it throws exception for all fields :
Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 15 counts of IllegalAnnotationExceptions
Class has two properties of the same name "result"
this problem is related to the following location:
at public portal.common.ejb.LoginResult portal.common.ejb.LoginResponse.getResult()
at portal.common.ejb.LoginResponse
this problem is related to the following location:
at private portal.common.ejb.LoginResult portal.common.ejb.LoginResponse.result
at portal.common.ejb.LoginResponse
Class has two properties of the same name "userInfo"
this problem is related to the following location:
at public portal.common.ejb.UserDTO portal.common.ejb.LoginResponse.getUserInfo()
at portal.common.ejb.LoginResponse
this problem is related to the following location:
at private portal.common.ejb.UserDTO portal.common.ejb.LoginResponse.userInfo
at portal.common.ejb.LoginResponse
Class has two properties of the same name "notifications"
this problem is related to the following location:
at public java.util.List portal.common.ejb.LoginResult.getNotifications()
at portal.common.ejb.LoginResult
at private portal.common.ejb.LoginResult portal.common.ejb.LoginResponse.result
at portal.common.ejb.LoginResponse
this problem is related to the following location:
at private java.util.List portal.common.ejb.LoginResult.notifications
at portal.common.ejb.LoginResult
...
I am using jaxws-ri-2.2.8, jaxws-json-1.2, jaxws-spring-1.9, xbean-spring-3.9 & spring-framework-4.0.3.RELEASE-dist.
NOTE : I am not much familiar with web services, so please be polite & patient.
POJO
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class LoginResponse {
private LoginResult result;
private UserDTO userInfo;
// Getter/setter
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class LoginResult {
private List<String> notifications;
private boolean success;
// Getter/setter
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class UserDTO {
private String eMail;
private Integer externalIdentifier;
private String firstName;
private String lastLoggedIn;
private String lastName;
private String phone;
private Integer role;
private String status;
private String title;
private int userId;
private String userIdentifier;
// Getter/setter
}
Refered Doc:
I also refer below link to solve the error
JAXB's @XmlAccessorType - @Blaise Doughan
Jaxb, Class has two properties of the same name - Stackoverflow
IllegalAnnotationsException: Class has two properties of same name - Stackoverflow , etc.
I tried all examples given by @Blaise Doughan. All works fine in Java application & Web app too. Also tried to generate wsdl & it generated & print output xml on console.
Can anybody point out what's wrong in my pojo classes ? I spend so much time on this but no luck. What should I have to do to get off this error ?
EDIT :
I also tried @XmlTransient annotation on getter method & @XmlElement annotation on all fields but, same issue.
Thanks a lot