2013-11-28 2 views
1

Я немного экспериментировал с веб-сервисом, когда я наткнулся на ситуацию. Соответствующие данные:SOAPFAULTEXCEPTION при попытке использовать веб-сервис

  • Я использую eclipse, cxf и tomcat.
  • Я создал простую веб-службу, которая печатает привет. В его методе нет аргументов. Когда я вызываю этот веб-сервис от клиента, все работает нормально.
  • Но, когда я создаю веб-сервис, с аргументами в методе, я получаю странное исключение:

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Unmarshalling Error: unexpected element (uri:"----", local:"loginid"). Expected elements are <{}tokenstring>,<{}devicetype>,<{}loginid>,<{}password>,<{}deviceid> at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:157) at $Proxy29.getUserInformation(Unknown Source) at servicepackage.ServiceClassPortType_ServiceClassPort_Client.main(ServiceClassPortType_ServiceClassPort_Client.java:71) Caused by: org.apache.cxf.binding.soap.SoapFault: Unmarshalling Error: unexpected element (uri:"----", local:"loginid"). Expected elements are <{}tokenstring>,<{}devicetype>,<{}loginid>,<{}password>,<{}deviceid> at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:84) at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:51) at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:40) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113) at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69) at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:835) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1606) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1502) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:627) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:565) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:474) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:377) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135) ... 2 more

Может кто-нибудь сказать мне, что происходит, и что я должен сделать, чтобы решить эту проблему? Благодарю.

ответ

1

Кажется, что вы изменили порядок XML-тегов в WSDL . Логин был третьим, но теперь сервер ожидает его сначала.

Восстановите клиента веб-службы и попробуйте.

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