使用Talend for ESB和SOAPUI调用Web服务的SOAP

时间:2014-06-10 09:34:09

标签: web-services soap wsdl soapui talend

我使用此操作查询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是以这种方式设置的...... 我该如何解决这个问题?

由于

0 个答案:

没有答案