Reputation: 17883
I have a class as
@XmlRootElement(name="Helloworld")
@XmlType(propOrder = { "userName"})
public class UserDetails {
//User Name
private String userName;
@XmlElement(name="UserName")
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
But In my WSDL I still get
<xs:element name="Helloworld" type="tns:userDetails"/>
<xs:complexType name="userDetails">
<xs:sequence>
<xs:element minOccurs="0" name="UserName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
The WSDL should be like this.
<xs:element name="Helloworld" type="tns:Helloworld"/>
<xs:complexType name="Helloworld">
<xs:sequence>
<xs:element minOccurs="0" name="UserName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Am I missing any thing. Can some suggest on this.
Upvotes: 1
Views: 107
Reputation: 2555
Try using this :
@XmlRootElement(name="Helloworld")
@XmlType(name = "HelloWorld", propOrder = {"userName"})
public class UserDetails {
//User Name
private String userName;
@XmlElement(name="UserName")
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
Upvotes: 1
Reputation: 122364
The name on @XmlRootElement
only affects the element declaration, to change the name of the complex type you need to specify a name on the @XmlType
annotation as well.
Upvotes: 1