1

我有一堂课

@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;
    }
}

但是在我的 WSDL 中,我仍然得到

<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>

WSDL 应该是这样的。

<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>

我错过了什么吗。可以对此提出一些建议。

4

2 回答 2

1

上的名称仅影响元素声明,要更改复杂类型的名称,您还需要在注释@XmlRootElement上指定名称。@XmlType

于 2013-01-24T09:33:21.323 回答
1

尝试使用这个:

@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;
    }
}
于 2013-01-24T09:52:21.487 回答