The fact that you're using Metro's wsimport instead of CXF's wsdl2java, and that one of the operations work, may both be distractions from the actual problem. (You can always check by generating your client with CXF's wsdl2java[1] to confirm the same error would occur.) One possibility is that the WSDL used by the web service provider is somehow different from the one you used to generate the client, and hence "{http://services.sample.services.ihc.org/}hello"; doesn't exist in the service WSDL, just like the error message says. Adding "?wsdl" to the endpoint address and viewing the resulting URL in the browser will give you the precise WSDL used by the web service provider.

HTH,
Glen

[1] http://www.jroller.com/gmazza/entry/soap_client_tutorial

On 2/22/2011 4:00 PM, Sonam Nepali wrote:
Hi

I have converted a wsdl to java using Metro webstack framework tool and using 
CXF client to invoke the services.

I have two methods in this generated java class: first one is  a oneway method 
and the other a request-response method.
I am able to get the oneway method to work but the requeset-response method 
fails upon invocation.  The following is the error:

Feb 22, 2011 1:56:48 PM org.apache.cxf.interceptor.LoggingInInterceptor logging
INFO: Inbound Message
----------------------------
ID: 1
Encoding: UTF-8
Content-Type: text/xml
Headers: {SOAPAction=[""]}
Payload:<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body><ns2:hello 
xmlns:ns2="http://services.sample.services.ihc.org/"/></soap:Body></soap:Envelope>
--------------------------------------
Feb 22, 2011 1:56:48 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
WARNING: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Message part 
{http://services.sample.services.ihc.org/}hello was not recognized.  (Does it 
exist in service WSDL?)
       at 
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:184)
       at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
       at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:104)
       at 
org.apache.cxf.transport.local.LocalConduit$1$1.run(LocalConduit.java:132)
       at java.lang.Thread.run(Unknown Source)
Feb 22, 2011 1:56:48 PM 
org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose


Any thoughts on why my two way method fails?

Thanks

Sonam Nepali


Reply via email to