Web服务请求:参数计数不匹配

时间:2012-04-03 15:17:45

标签: java web-services parameters jax-ws

我正在使用JAX-WS编写Web服务使用者。我使用了wsimport工具来从WSDL文件生成代码。

在这个网络服务中,我有4个操作,其中1个有效。此操作仅询问参数,并且正常工作

MyOperationARequest request = new MyOperationARequest(); 
request.setSomeData("1");

MyOperationAResponse response = serviceA.MyOperationA(request);

这就像魅力一样,我能够解析响应并从中获取数据。

使用其他3个操作时会出现问题,所有这些操作都需要两个参数而不是一个。

MyOperationBRequest request = new MyOperationBRequest(); 
request.setSomeData("1");

MyOperationBResponse response = serviceB.MyOperationB(request1, request2);

这会引发以下错误:

javax.xml.ws.soap.SOAPFaultException: javax.xml.ws.WebServiceException: java.lang.RuntimeException: Mismatched parameter count:expecting 1 items, but got 0 instead.
at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(Unknown Source)
at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(Unknown Source)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(Unknown Source)
at $Proxy34.myOperation(Unknown Source)
...

我一直在搜索很多,我发现了一些像这样的问题,尽管它们都是PHP,而不是Java。在这个例子中,人们鼓励创建一个数组,并把两个参数放在那里,但我相信这不是一个选项,因为myOperationB方法问我两个参数(顺便说一下,它们甚至不是同一个对象类型)

任何建议都将不胜感激。

先谢谢。

0 个答案:

没有答案