Hi, I suspect that there is something wrong or inconsistent with your wsdl or in the way in which you invoke the call.
The expected SOAP message that you quoted appears actually invalid as it specifies the schema type of getAlertDataRequest to be xsi:string inline, although this element has a complex content. In this regard, atually the serialized message that you say incorrect is correct, as it containts the simple string content in getAlertDataRequest. Could you provide more information? regards, aki 2011/4/26 srinivas thallapalli <[email protected]>: > Hi All, > > I was trying to invoke a webservice with CXF client using dynamic client > approach but failing with following exception > > Exception in thread "main" java.lang.RuntimeException: > org.apache.cxf.binding.soap.SoapFault: Unmarshalling Error: cvc-elt.4.3: > Type 'xs:string' is not validly derived from the type definition, > 'getAlertDataRequest', of element 'ns2:getAlertDataRequest'. > > Caused by: org.apache.cxf.binding.soap.SoapFault: Unmarshalling Error: > cvc-elt.4.3: Type 'xs:string' is not validly derived from the type > definition, 'getAlertDataRequest', of element 'ns2:getAlertDataRequest'. > at > org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:75) > at > org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46) > at > org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243) > at > org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:99) > 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:243) > at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:672) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2254) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2134) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1988) > at > org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47) > at > org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:188) > at > org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) > at > org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:639) > at > org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:484) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:310) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:262) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:282) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:268) > > > > However the webservice invocation is fine with soapUI. > > On investigation I found that, the request (soap) message sent was not > correct: > > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> > > <soap:Body> > > <ns2:getAlertDataRequest xmlns:ns2="http://ws.alerts.sbm.savvion.com/" > xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string"> > > ebms > > </ns2:getAlertDataRequest> > > </soap:Body> > > </soap:Envelope> > > > > Instead it should be: > > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> > > <soap:Body> > > <ns2:getAlertDataRequest xmlns:ns2="http://ws.alerts.sbm.savvion.com/" > xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string"> > > <user>ebms</user> > > </ns2:getAlertDataRequest> > > </soap:Body> > > </soap:Envelope> > > > I am not able to findout, why CXF client request message does not contain > <user> </user> inside </ns2:getAlertDataRequest>. > > Any help appreciated. > > Thanks > > -- > View this message in context: > http://cxf.547215.n5.nabble.com/Problem-with-CXF-tp4341066p4341066.html > Sent from the cxf-user mailing list archive at Nabble.com. >
