[ 
https://issues.apache.org/jira/browse/CXF-2378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

banks  updated CXF-2378:
------------------------

    Description: 
I am having problem recieving input from SSRS reporting services SOAP body as a 
parameter in the method defined under my CXF web service. I can see the SOAP 
header and body being passed but the parameter in the method is always null. 
Can someone suggest what is the best way to achieve this.

SOAP mesage coming in from SSRS looks like
INFO: Inbound Message
----------------------------
Encoding: UTF-8
Headers: {expect=[100-continue], content-type=[text/xml], 
connection=[Keep-Alive], host=[127.0.0.1:8082], 
soapaction=[http://localhost:8080/testService/Soap], content-length=[612]}
Messages: 
Message:

Payload: <?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
  <soap:Body>
    <query xmlns="http://test.xx.jj.com";>
      <User>aa</User>
      <SQL>
             Select * from xx
         </SQL>
          </query>
  </soap:Body>
</soap:Envelope>
--------------------------------------


WSDL file.

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="TestSoapService" 
                  targetNamespace="http://testservice.xx.com/"; 
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
                  xmlns:tns="http://test.xx.com/"; 
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
                  
xmlns:cxf="http://cxf.apache.org/transports/http/configuration";>
  <wsdl:types>
                <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:tns="http://testservice.xx.com/"; attributeFormDefault="unqualified" 
elementFormDefault="unqualified" targetNamespace="http://testservice.xx.com/";>
                    
                   <xs:element name="query">
           <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Request" type="xs:string" 
maxOccurs="1" minOccurs="1"/>
                    </xs:sequence>
                </xs:complexType>
        </xs:element>
        <xs:element name="response">
           <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Response" type="xs:string" 
maxOccurs="1" minOccurs="1"/>
                    </xs:sequence>
                </xs:complexType>
        </xs:element>
            
        </xs:schema>
  </wsdl:types>
  
  <wsdl:message name="query">
    <wsdl:part name="request" element="tns:query"></wsdl:part>
  </wsdl:message>
   <wsdl:message name="queryResponse">
     <wsdl:part name="response" element="tns:response"></wsdl:part>
   </wsdl:message>
    
   <wsdl:portType name="TestSoapInternal">
    <wsdl:operation name="query">
      <wsdl:input name="query" message="tns:query">
      </wsdl:input>
      <wsdl:output name="queryResponse" message="tns:queryResponse">
      </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  
  <wsdl:binding name="TestSoapServiceSoapBinding" type="tns:TestSoapInternal">
    <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="query">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="query">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="queryResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  
  <wsdl:service name="TestSoapService">
    <wsdl:port name="TestSoapServicePort" 
binding="tns:TestSoapServiceSoapBinding">
      <soap:address location="http://localhost:8082/TestSoapServicePort"/>
      <cxf:client AllowChunking="false"/>      
    </wsdl:port>
  </wsdl:service>
  
</wsdl:definitions>



  was:
I am having problem recieving input from SSRS reporting services SOAP body as a 
parameter in the method defined under my CXF web service. I can see the SOAP 
header and body being passed but the parameter in the method is always null. 
Can someone suggest what is the best way to achieve this.

SOAP mesage coming in from SSRS looks like
INFO: Inbound Message
----------------------------
Encoding: UTF-8
Headers: {expect=[100-continue], content-type=[text/xml], 
connection=[Keep-Alive], host=[127.0.0.1:8082], 
soapaction=[http://localhost:8080/testService/Soap], content-length=[612]}
Messages: 
Message:

Payload: <?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
  <soap:Body>
    <query xmlns="http://test.xx.jj.com";>
      <User>aa</User>
      <SQL>
             Select * from xx
         </SQL>
          </query>
  </soap:Body>
</soap:Envelope>
--------------------------------------




> Capturing SOAP body passed from SSRS in CXF method as a parameter
> -----------------------------------------------------------------
>
>                 Key: CXF-2378
>                 URL: https://issues.apache.org/jira/browse/CXF-2378
>             Project: CXF
>          Issue Type: Task
>          Components: Soap Binding
>    Affects Versions: 2.1.2
>         Environment: Tomcat v 6
> CXF 2.1.2
> Windows XP
> Java 1.6.0_05
>            Reporter: banks 
>
> I am having problem recieving input from SSRS reporting services SOAP body as 
> a parameter in the method defined under my CXF web service. I can see the 
> SOAP header and body being passed but the parameter in the method is always 
> null. Can someone suggest what is the best way to achieve this.
> SOAP mesage coming in from SSRS looks like
> INFO: Inbound Message
> ----------------------------
> Encoding: UTF-8
> Headers: {expect=[100-continue], content-type=[text/xml], 
> connection=[Keep-Alive], host=[127.0.0.1:8082], 
> soapaction=[http://localhost:8080/testService/Soap], content-length=[612]}
> Messages: 
> Message:
> Payload: <?xml version="1.0" encoding="utf-8"?>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>   <soap:Body>
>     <query xmlns="http://test.xx.jj.com";>
>       <User>aa</User>
>       <SQL>
>              Select * from xx
>          </SQL>
>           </query>
>   </soap:Body>
> </soap:Envelope>
> --------------------------------------
> WSDL file.
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="TestSoapService" 
>                   targetNamespace="http://testservice.xx.com/"; 
>                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
>                   xmlns:tns="http://test.xx.com/"; 
>                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
>                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
>                   
> xmlns:cxf="http://cxf.apache.org/transports/http/configuration";>
>   <wsdl:types>
>               <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
> xmlns:tns="http://testservice.xx.com/"; attributeFormDefault="unqualified" 
> elementFormDefault="unqualified" targetNamespace="http://testservice.xx.com/";>
>                   
>                  <xs:element name="query">
>            <xs:complexType>
>                     <xs:sequence>
>                         <xs:element name="Request" type="xs:string" 
> maxOccurs="1" minOccurs="1"/>
>                     </xs:sequence>
>                 </xs:complexType>
>         </xs:element>
>         <xs:element name="response">
>            <xs:complexType>
>                     <xs:sequence>
>                         <xs:element name="Response" type="xs:string" 
> maxOccurs="1" minOccurs="1"/>
>                     </xs:sequence>
>                 </xs:complexType>
>         </xs:element>
>           
>         </xs:schema>
>   </wsdl:types>
>   
>   <wsdl:message name="query">
>     <wsdl:part name="request" element="tns:query"></wsdl:part>
>   </wsdl:message>
>    <wsdl:message name="queryResponse">
>      <wsdl:part name="response" element="tns:response"></wsdl:part>
>    </wsdl:message>
>     
>    <wsdl:portType name="TestSoapInternal">
>     <wsdl:operation name="query">
>       <wsdl:input name="query" message="tns:query">
>       </wsdl:input>
>       <wsdl:output name="queryResponse" message="tns:queryResponse">
>       </wsdl:output>
>     </wsdl:operation>
>   </wsdl:portType>
>   
>   <wsdl:binding name="TestSoapServiceSoapBinding" type="tns:TestSoapInternal">
>     <soap:binding style="document" 
> transport="http://schemas.xmlsoap.org/soap/http"/>
>     <wsdl:operation name="query">
>       <soap:operation soapAction="" style="document"/>
>       <wsdl:input name="query">
>         <soap:body use="literal"/>
>       </wsdl:input>
>       <wsdl:output name="queryResponse">
>         <soap:body use="literal"/>
>       </wsdl:output>
>     </wsdl:operation>
>   </wsdl:binding>
>   
>   <wsdl:service name="TestSoapService">
>     <wsdl:port name="TestSoapServicePort" 
> binding="tns:TestSoapServiceSoapBinding">
>       <soap:address location="http://localhost:8082/TestSoapServicePort"/>
>       <cxf:client AllowChunking="false"/>      
>     </wsdl:port>
>   </wsdl:service>
>   
> </wsdl:definitions>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to