Я пишу потребителю веб-сервиса, используя JAX-WS. Я использовал инструмент wsimport для генерации кода из файлов WSDL.
В этом веб-сервисе у меня 4 операции, 1 из которых работает. Эта операция запрашивает только параметр, и она работает правильно
MyOperationARequest request = new MyOperationARequest();
request.setSomeData("1");
MyOperationAResponse response = serviceA.MyOperationA(request);
Это работает как брелок, и я могу проанализировать ответ и получить от него данные.
Проблема возникает при использовании трех других операций, все они запрашивают два параметра вместо одного.
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 запрашивает у меня два из них (которые, кстати, даже не относятся к одному и тому же типу объекта) .
Любое предложение будет высоко ценится.
Спасибо заранее.