You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by "Monga, Sunita (GE Healthcare)" <su...@ge.com> on 2013/06/03 22:27:56 UTC

Camel 2.9.2, CXF 2.6.2 - How should the response look for CXF producer using Payload dataformat

Hello all,

I have a route which sends a request to CXF webservice using Payload dataformat. My question should the response consist of only Soap:body or should it be the entire message soap:envelope

Spring context

<cxf:cxfEndpoint id="xdrReceiverEndpoint"
               address="${xdrWebserviceUrl}"
              endpointName="s:CcdaXdrServicePort"
              serviceName="s:CcdaXdrService"
              xmlns:s="http://service.webservices.xdrreceiverimpl.pil.hcit.ge.com">
     <cxf:properties>
        <entry key="mtom-enabled" value="true"/>
         <entry key="dataFormat" value="PAYLOAD"/>
              <entry key="loggingFeatureEnabled" value="true"/>
              <!-- <entry key="defaultOperationName" value="submitCcda"/>-->
     </cxf:properties>
</cxf:cxfEndpoint>

Sample request:

    static final String REQ_MESSAGE="<ccdaRequest xmlns=\"" +"http://service.webservices.xdrreceiverimpl.pil.hcit.ge.com/CcdaXdrService\<http://service.webservices.xdrreceiverimpl.pil.hcit.ge.com/CcdaXdrService/>">"
                +"<clinicalDocument>"
                +"<ccDocument>"
                +"<xop:Include xmlns:xop=\"http://www.w3.org/2004/08/xop/include\<http://www.w3.org/2004/08/xop/include/>""
                + " href=\"cid:" + REQ_DOC_CID + "\"/>"
                +"</ccDocument>"
                +"</clinicalDocument>"
                +"</ccdaRequest>";


I am trying to use SoapUI mockservice to mock the response as below


      <ccdaResponse xmlns="http://service.webservices.xdrreceiverimpl.pil.hcit.ge.com/CcdaXdrService">
         <!--Optional:-->
         <ccdaAcknowledgement>
            <!--Optional:-->
            <statusCode>0</statusCode>
            <!--Optional:-->
            <statusDesc>Success</statusDesc>
         </ccdaAcknowledgement>
      </ccdaResponse>

But I get following error

[http-bio-8080-exec-1] WARN org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for {http://service.webservices.xdrreceiverimpl.pil.hcit.ge.com}CcdaXdrService#{http://camel.apache.org/cxf/jaxws/dispatch}Invoke has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: "http://service.webservices.xdrreceiverimpl.pil.hcit.ge.com/CcdaXdrService", the namespace on the "ccdaResponse" element, is not a valid SOAP version.
        at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.readVersion(ReadHeadersInterceptor.java:116)
        at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:142)
        at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:61)

If the response is the entire soap envelope I get following error. So not sure what the response should like


org.apache.cxf.interceptor.Fault: Unexpected element {http://model.webservices.ihe.adapters.ccg.dataexchange.hcit.ge.com/CcdaXdrService}ccdaResponse found.   Expected {http://camel.apache.org/cxf/jaxws/dispatch}InvokeResponse.



                at org.apache.cxf.interceptor.DocLiteralInInterceptor.validatePart(DocLiteralInInterceptor.java:258)



                at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:200)





Re: Camel 2.9.2, CXF 2.6.2 - How should the response look for CXF producer using Payload dataformat

Posted by Willem jiang <wi...@gmail.com>.
Hi,

The response should be a valid soap message which is wrapped with the <soap:envelope>.  

--  
Willem Jiang

Red Hat, Inc.
FuseSource is now part of Red Hat
Web: http://www.fusesource.com | http://www.redhat.com
Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English)
          http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
Twitter: willemjiang  
Weibo: 姜宁willem





On Tuesday, June 4, 2013 at 4:27 AM, Monga, Sunita (GE Healthcare) wrote:

> Hello all,
>  
> I have a route which sends a request to CXF webservice using Payload dataformat. My question should the response consist of only Soap:body or should it be the entire message soap:envelope
>  
> Spring context
>  
> <cxf:cxfEndpoint id="xdrReceiverEndpoint"
> address="${xdrWebserviceUrl}"
> endpointName="s:CcdaXdrServicePort"
> serviceName="s:CcdaXdrService"
> xmlns:s="http://service.webservices.xdrreceiverimpl.pil.hcit.ge.com">
> <cxf:properties>
> <entry key="mtom-enabled" value="true"/>
> <entry key="dataFormat" value="PAYLOAD"/>
> <entry key="loggingFeatureEnabled" value="true"/>
> <!-- <entry key="defaultOperationName" value="submitCcda"/>-->
> </cxf:properties>
> </cxf:cxfEndpoint>
>  
> Sample request:
>  
> static final String REQ_MESSAGE="<ccdaRequest xmlns=\"" +"http://service.webservices.xdrreceiverimpl.pil.hcit.ge.com/CcdaXdrService\<http://service.webservices.xdrreceiverimpl.pil.hcit.ge.com/CcdaXdrService/>">"
> +"<clinicalDocument>"
> +"<ccDocument>"
> +"<xop:Include xmlns:xop=\"http://www.w3.org/2004/08/xop/include\<http://www.w3.org/2004/08/xop/include/>""
> + " href=\"cid:" + REQ_DOC_CID + "\"/>"
> +"</ccDocument>"
> +"</clinicalDocument>"
> +"</ccdaRequest>";
>  
>  
> I am trying to use SoapUI mockservice to mock the response as below
>  
>  
> <ccdaResponse xmlns="http://service.webservices.xdrreceiverimpl.pil.hcit.ge.com/CcdaXdrService">
> <!--Optional:-->
> <ccdaAcknowledgement>
> <!--Optional:-->
> <statusCode>0</statusCode>
> <!--Optional:-->
> <statusDesc>Success</statusDesc>
> </ccdaAcknowledgement>
> </ccdaResponse>
>  
> But I get following error
>  
> [http-bio-8080-exec-1] WARN org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for {http://service.webservices.xdrreceiverimpl.pil.hcit.ge.com}CcdaXdrService#{http://camel.apache.org/cxf/jaxws/dispatch}Invoke has thrown exception, unwinding now
> org.apache.cxf.binding.soap.SoapFault: "http://service.webservices.xdrreceiverimpl.pil.hcit.ge.com/CcdaXdrService", the namespace on the "ccdaResponse" element, is not a valid SOAP version.
> at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.readVersion(ReadHeadersInterceptor.java:116)
> at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:142)
> at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:61)
>  
> If the response is the entire soap envelope I get following error. So not sure what the response should like
>  
>  
> org.apache.cxf.interceptor.Fault: Unexpected element {http://model.webservices.ihe.adapters.ccg.dataexchange.hcit.ge.com/CcdaXdrService}ccdaResponse found. Expected {http://camel.apache.org/cxf/jaxws/dispatch}InvokeResponse.
>  
>  
>  
> at org.apache.cxf.interceptor.DocLiteralInInterceptor.validatePart(DocLiteralInInterceptor.java:258)
>  
>  
>  
> at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:200)