我使用此操作查询Web服务:
public schema.cupservices.Output callService(
@WebParam(partName = "inputMessage", name = "inputMessage", targetNamespace = "http://schema/cupServices") schema.cupservices.Input inputMessage);
inputMessage的类型为“输入”:
public abstract class Input {
@XmlElement(required = true)
protected LoginData loginData;
public LoginData getLoginData() {
return loginData;
}
public void setLoginData(LoginData value) {
this.loginData = value;
}
}
当我尝试使用TSOAP组件和SOAPUI在Talend上调用服务时,两者都作为输入:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cup="http://schema/cupServices">
<soapenv:Header/>
<soapenv:Body>
<cup:inputMessage>
<cup:loginData>
<cup:username>user</cup:username>
<cup:password>123</cup:password>
</cup:loginData>
</cup:inputMessage>
</soapenv:Body>
</soapenv:Envelope>
我收到此错误:
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
<faultcode>S:Server</faultcode>
<faultstring>javax.xml.bind.UnmarshalException
- with linked exception:
[javax.xml.bind.UnmarshalException: Unable to create an instance of schema.cupservices.Input
- with linked exception:
[java.lang.InstantiationException]]</faultstring>
我知道Input是一个抽象类,但是webservice的wsdl是以这种方式设置的...... 我该如何解决这个问题?
由于