2013-11-28 1 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

    WSDL에서 XML 태그의 순서가 바뀌 었습니다. loginid는 세 번째이지만, 이제는 서버가 먼저 기대합니다.

    웹 서비스 클라이언트를 재생성하고 시도하십시오.

    관련 문제