为什么SOAP WSDL服务无法识别我的实体?

时间:2017-10-27 03:00:14

标签: java web-services soap wsdl

我有这个方法:

  @WebResult(name = "accountList")
public List<Account> getAllAccountWithScoreBiggerThan(@WebParam(name = "scoreValue") int scoreValue) {
    System.out.println("bigger than " + scoreValue);
    List<Account> list = dao.findAccountsWithScoreBiggerThan(scoreValue);
    return list;
}

但是当我使用SoapUI进行测试时,我得到了这个xml:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 <soap:Body>
  <ns2:getAllAccountWithScoreBiggerThanResponse xmlns:ns2="http://service/">
     <accountList/>
     <accountList/>
     <accountList/>
  </ns2:getAllAccountWithScoreBiggerThanResponse>
 </soap:Body>
</soap:Envelope>

当我查看我的WSDL时,我得到了这篇文章:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://service/" elementFormDefault="unqualified" targetNamespace="http://service/" version="1.0">
<xs:element name="getAllAccountWithScoreBiggerThan" type="tns:getAllAccountWithScoreBiggerThan"/>
<xs:element name="getAllAccountWithScoreBiggerThanResponse" type="tns:getAllAccountWithScoreBiggerThanResponse"/>
<xs:complexType name="getAllAccountWithScoreBiggerThan">
    <xs:sequence>
        <xs:element name="scoreValue" type="xs:int"/>
    </xs:sequence>
</xs:complexType>
<xs:complexType name="getAllAccountWithScoreBiggerThanResponse">
    <xs:sequence>
        <xs:element maxOccurs="unbounded" minOccurs="0" name="accountList" type="tns:account"/>
    </xs:sequence>
</xs:complexType>
<xs:complexType name="account">
    <xs:sequence/>
</xs:complexType>

这件作品不应该列出我所有的帐户属性吗?如何更改输出以列出我的实体属性?在调试时,我通常可以看到我的所有属性。

1 个答案:

答案 0 :(得分:0)

我不知道为什么而且我没有找到源,但属性需要相应命名的getter和setter才能使用SOAP。在我添加它们之后,它完美地运行了