2014-09-02 2 views
0

Я использую веб-службу с плагином axis2. Используемая методология - rpc.MessageContext не имеет связанного с ним SOAPFault

код основным является:

 GetPayIDBillIDStub stub = new GetPayIDBillIDStub("http://80.91.4.113:8088/services/GetPayIDBillID_Proxy"); 
     stub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, Boolean.FALSE); 
     GetPayIDBillIDStub.PaymentInput input = new GetPayIDBillIDStub.PaymentInput(); 
     input.setPassword("123456"); 
     input.setTelephone(2111111111); 
     input.setUsername("test"); 
     paymentTelOPR.setPaymentTelOPRRequest(input); 
     org.apache.axiom.om.OMFactory factory = org.apache.axiom.om.OMAbstractFactory.getOMFactory(); 
    paymentTelOPRResponseE = stub.paymentTelOPR(paymentTelOPRE.setPaymentTelOPRRequest(paymentTelOPR.getOMElement(GetPayIDBillIDStub.PaymentTelOPR.MY_QNAME, factory))); 

ошибка:

Exception in thread "main" java.lang.IllegalArgumentException: The MessageContext does not have an associated SOAPFault. 
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:556) 
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375) 
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421) 
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) 
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) 
at mypackage.GetPayIDBillIDStub.paymentTelOPR(GetPayIDBillIDStub.java:182) 
at Run.main(Run.java:82) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 

помощь для меня.

ответ

0

У нас недавно возникла эта проблема, потому что ответ не содержал SOAPFault (на самом деле это был ожидаемый ответ на вызов службы), но код состояния http ответа был 5xx (500 в нашем случае).

Возможно, что-то подобное в вашем случае.

Вы можете проверить это, используя общий клиент Webservice, такой как SoapUI, который также может отображать необработанный ответ hhtp.

+0

@cfrick пост - фактически форма ответа - или по крайней мере одна причина, по которой ОП сталкивается с проблемой. Я бы предложил оставить его. –

0

Я знаю, что это поздний ответ, но я могу помочь новым инженерам с моим опытом. У меня такая же ошибка, когда я использовал интерфейс SOAP с моим API. Проблема началась, когда я заменил мой издеваемый ответ на ответ об ошибке только для его тестирования. Но как только я повторил, чтобы использовать правильный код, это не сработало, и это дало мне эту ошибку. Решение: я должен удалить ответ, потому что он считается ответом на ошибку и отсутствием кода ошибки. Когда я создал новый ответ и удалил старый, он работал без получения этого исключения

Смежные вопросы