You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Hemant Gakhar (JIRA)" <ji...@apache.org> on 2009/08/04 16:35:14 UTC

[jira] Created: (CXF-2378) Capturing SOAP body passed from SSRS in CXF method as a parameter

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: Hemant Gakhar


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.



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


Re: [jira] Created: (CXF-2378) Capturing SOAP body passed from SSRS in CXF method as a parameter

Posted by Daniel Kulp <dk...@apache.org>.
Just realized you responded to the jira email not adding a comment to the jira 
directly....

In anycase,

<query xmlns="http://dataaccessservice.my.company.com">
   <dql>getdocbaselist</dql>
....

Is still invalid according to your schema.    Your schema states:
elementFormDefault="unqualified"
but the above message sets the default namespace to dql ends up as a qualified 
element.   

The message should be either:
<ns1:query xmlns:ns1="http://dataaccessservice.my.company.com">
   <dql>getdocbaselist</dql>
....

or 

<query xmlns="http://dataaccessservice.my.company.com">
   <dql xmlns="">getdocbaselist</dql>
....


In anycase, if you update to CXF 2.2.4, I think JAXB will now generate an 
error in your case that would explain that the incoming message has unexpected 
elements.

Dan



On Wed October 14 2009 3:34:38 pm banks21 wrote:
> Thanks Daniel for your reply I was sidetracked and had to leave this issue
> now I am trying to get this thing resolved. I am just not able to get the
> values passed from the SOAP message into the web service method. The method
> parameters always get null.
> 
> I just want to get the soap body in the method so that I can parse the xml
> and get all the parameter values.
> 
> Here is the SOAP header and related info passed from SSRS to the webservice
> 
> ----------------------------
> 
> Encoding: UTF-8
> 
> Headers: {expect=[100-continue], content-type=[text/xml],
> connection=[Keep-Alive], host=[127.0.0.1:9082],
> soapaction=[http://localhost:9080/axis2/services/DataAccessService/query],
> content-length=[328]}
> 
> 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://dataaccessservice.my.company.com">
> 
>       <dql>getdocbaselist</dql>
> 
>       <group>1</group>
> 
>       <group_size>0</group_size>
> 
>     </query>
> 
>   </soap:Body>
> 
> </soap:Envelope>
> 
> --------------------------------------
> 
> com.company.my.dataaccessservice.internal.Request@9ab0
> 
> dql null
> 
> sGroup null
> 
> sGroupSize null
> 
> Oct 14, 2009 10:43:12 AM
> com.company.my.dataaccessservice.DataAccessSoapInternalImpl query
> 
> INFO: Executing operation query
> 
> Oct 14, 2009 10:43:12 AM
> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
> 
> INFO: Outbound Message
> 
> ---------------------------
> 
> Encoding: UTF-8
> 
> Headers: {}
> 
> Messages:
> 
> Payload: <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body></soap:Bo
> dy></soap:Envelope>
> 
> I am using WSL first approach and here is the wsdl i used to generate the
> code.
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="DataAccessSoapService"
>                  
>  targetNamespace="http://dataaccessservice.my.company.com/"
>  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>                   xmlns:tns="http://dataaccessservice.my.company.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://dataaccessservice.my.company.com/"
> attributeFormDefault="unqualified" elementFormDefault="unqualified"
> targetNamespace="http://dataaccessservice.my.company.com/">
> 
> 		 <xs:element name="request">
>                <xs:complexType>
>                     <xs:sequence>
>                         <xs:element name="dql" type="xs:string"
> minOccurs="1" maxOccurs="1" />
>                         <xs:element name="group" type="xs:string"
> minOccurs="1" maxOccurs="1" />
>                         <xs:element name="group_size" type="xs:string"
> minOccurs="1" maxOccurs="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="queryRequest">
>     <wsdl:part name="request" element="tns:request"></wsdl:part>
>   </wsdl:message>
>    <wsdl:message name="queryResponse">
>      <wsdl:part name="response" element="tns:response"></wsdl:part>
>    </wsdl:message>
> 
>    <wsdl:portType name="DataAccessSoapInternal">
>     <wsdl:operation name="query">
>       <wsdl:input name="queryRequest" message="tns:queryRequest">
>       </wsdl:input>
>       <wsdl:output name="queryResponse" message="tns:queryResponse">
>       </wsdl:output>
>     </wsdl:operation>
>   </wsdl:portType>
> 
>   <wsdl:binding name="DataAccessSoapServiceSoapBinding"
> type="tns:DataAccessSoapInternal">
>     <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>     <wsdl:operation name="query">
>       <soap:operation soapAction="" style="document"/>
>       <wsdl:input name="queryRequest">
>         <soap:body use="literal"/>
>       </wsdl:input>
>       <wsdl:output name="queryResponse">
>         <soap:body use="literal"/>
>       </wsdl:output>
>     </wsdl:operation>
>   </wsdl:binding>
> 
>   <wsdl:service name="DataAccessSoapService">
>     <wsdl:port name="DataAccessSoapServicePort"
> binding="tns:DataAccessSoapServiceSoapBinding">
>       <soap:address
> location="http://localhost:9082/DataAccessSoapServicePort"/>
>       <cxf:client AllowChunking="false"/>
>     </wsdl:port>
>   </wsdl:service>
> 
> </wsdl:definitions>
> 
> Code for the Implementation class is
> 
> @javax.jws.WebService(name = "DataAccessSoapInternal",
>                       serviceName = "DataAccessSoapService",
>                       portName = "DataAccessSoapServicePort",
>                       targetNamespace =
> "http://dataaccessservice.my.company.com/",
>                       wsdlLocation =
> "file:/d:/source/infoworks/6.05/services/dataaccessservice/wsdl/DataAccess.
> wsdl", endpointInterface =
> "com.company.my.dataaccessservice.DataAccessSoapInternal")
> 
> public class DataAccessSoapInternalImpl implements DataAccessSoapInternal {
> 
>     private static final Logger LOG =
> Logger.getLogger(DataAccessSoapInternalImpl.class.getName());
> 
>     /* (non-Javadoc)
>      * @see
> com.bechtel.iw.dataaccessservice.internal.DataAccessSoapInternal#query(com.
> company.my.dataaccessservice.internal.Request request )*
>      */
>     public com.company.my.dataaccessservice.internal.Response query(Request
> request) {
>         LOG.info("Executing operation query");
>         System.out.println(request);
> 
>         String sDql = request.getDql();
>         String sGroup = request.getGroup();
>         String sGroupSize = request.getGroupSize();
> 
>         System.out.println("dql " + sDql );
>         System.out.println("sGroup " + sGroup );
>         System.out.println("sGroupSize " + sGroupSize );
> 
> 
>         try {
>             com.company.my.dataaccessservice.internal.Response _return =
> null;
>             return _return;
>         } catch (Exception ex) {
>             ex.printStackTrace();
>             throw new RuntimeException(ex);
>         }
>     }
> 
> }
> 
> 
> Thanks.
> 

-- 
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog

Re: [jira] Created: (CXF-2378) Capturing SOAP body passed from SSRS in CXF method as a parameter

Posted by banks21 <he...@hotmail.com>.
Thanks Daniel for your reply I was sidetracked and had to leave this issue
now I am trying to get this thing resolved. I am just not able to get the
values passed from the SOAP message into the web service method. The method
parameters always get null.

I just want to get the soap body in the method so that I can parse the xml
and get all the parameter values.

Here is the SOAP header and related info passed from SSRS to the webservice

----------------------------

Encoding: UTF-8

Headers: {expect=[100-continue], content-type=[text/xml],
connection=[Keep-Alive], host=[127.0.0.1:9082],
soapaction=[http://localhost:9080/axis2/services/DataAccessService/query],
content-length=[328]}

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://dataaccessservice.my.company.com">

      <dql>getdocbaselist</dql>

      <group>1</group>

      <group_size>0</group_size>

    </query>

  </soap:Body>

</soap:Envelope>

--------------------------------------

com.company.my.dataaccessservice.internal.Request@9ab0

dql null

sGroup null

sGroupSize null

Oct 14, 2009 10:43:12 AM
com.company.my.dataaccessservice.DataAccessSoapInternalImpl query

INFO: Executing operation query

Oct 14, 2009 10:43:12 AM
org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose

INFO: Outbound Message

---------------------------

Encoding: UTF-8

Headers: {}

Messages: 

Payload: <soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body></soap:Body></soap:Envelope>

I am using WSL first approach and here is the wsdl i used to generate the
code.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="DataAccessSoapService" 
                  targetNamespace="http://dataaccessservice.my.company.com/" 
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
                  xmlns:tns="http://dataaccessservice.my.company.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://dataaccessservice.my.company.com/"
attributeFormDefault="unqualified" elementFormDefault="unqualified"
targetNamespace="http://dataaccessservice.my.company.com/">
		    
		 <xs:element name="request">
               <xs:complexType>
                    <xs:sequence>
                        <xs:element name="dql" type="xs:string"
minOccurs="1" maxOccurs="1" />
                        <xs:element name="group" type="xs:string"
minOccurs="1" maxOccurs="1" />
                        <xs:element name="group_size" type="xs:string"
minOccurs="1" maxOccurs="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="queryRequest">
    <wsdl:part name="request" element="tns:request"></wsdl:part>
  </wsdl:message>
   <wsdl:message name="queryResponse">
     <wsdl:part name="response" element="tns:response"></wsdl:part>
   </wsdl:message>
    
   <wsdl:portType name="DataAccessSoapInternal">
    <wsdl:operation name="query">
      <wsdl:input name="queryRequest" message="tns:queryRequest">
      </wsdl:input>
      <wsdl:output name="queryResponse" message="tns:queryResponse">
      </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  
  <wsdl:binding name="DataAccessSoapServiceSoapBinding"
type="tns:DataAccessSoapInternal">
    <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="query">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="queryRequest">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="queryResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  
  <wsdl:service name="DataAccessSoapService">
    <wsdl:port name="DataAccessSoapServicePort"
binding="tns:DataAccessSoapServiceSoapBinding">
      <soap:address
location="http://localhost:9082/DataAccessSoapServicePort"/>
      <cxf:client AllowChunking="false"/>      
    </wsdl:port>
  </wsdl:service>
  
</wsdl:definitions>

Code for the Implementation class is 

@javax.jws.WebService(name = "DataAccessSoapInternal",
                      serviceName = "DataAccessSoapService",
                      portName = "DataAccessSoapServicePort",
                      targetNamespace =
"http://dataaccessservice.my.company.com/",
                      wsdlLocation =
"file:/d:/source/infoworks/6.05/services/dataaccessservice/wsdl/DataAccess.wsdl",
                      endpointInterface =
"com.company.my.dataaccessservice.DataAccessSoapInternal")
                      
public class DataAccessSoapInternalImpl implements DataAccessSoapInternal {

    private static final Logger LOG =
Logger.getLogger(DataAccessSoapInternalImpl.class.getName());

    /* (non-Javadoc)
     * @see
com.bechtel.iw.dataaccessservice.internal.DataAccessSoapInternal#query(com.company.my.dataaccessservice.internal.Request 
request )*
     */
    public com.company.my.dataaccessservice.internal.Response query(Request
request) { 
        LOG.info("Executing operation query");
        System.out.println(request);
        
        String sDql = request.getDql();
        String sGroup = request.getGroup();
        String sGroupSize = request.getGroupSize();
        
        System.out.println("dql " + sDql );
        System.out.println("sGroup " + sGroup );
        System.out.println("sGroupSize " + sGroupSize );
        
        
        try {
            com.company.my.dataaccessservice.internal.Response _return =
null;
            return _return;
        } catch (Exception ex) {
            ex.printStackTrace();
            throw new RuntimeException(ex);
        }
    }

}


Thanks.



-- 
View this message in context: http://www.nabble.com/-jira--Created%3A-%28CXF-2378%29-Capturing-SOAP-body-passed-from-SSRS-in-CXF-method-as-a-parameter-tp24809840p25897569.html
Sent from the cxf-issues mailing list archive at Nabble.com.


[jira] Updated: (CXF-2378) Capturing SOAP body passed from SSRS in CXF method as a parameter

Posted by "banks (JIRA)" <ji...@apache.org>.
     [ 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>
--------------------------------------



  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.




> 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>
> --------------------------------------

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


[jira] Updated: (CXF-2378) Capturing SOAP body passed from SSRS in CXF method as a parameter

Posted by "banks (JIRA)" <ji...@apache.org>.
     [ 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.


[jira] Commented: (CXF-2378) Capturing SOAP body passed from SSRS in CXF method as a parameter

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-2378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12739706#action_12739706 ] 

Daniel Kulp commented on CXF-2378:
----------------------------------


That soap message has absolutely nothing to do with that wsdl.       According to the wsdl, the "query" element should be in the namespace "http://testservice.xx.com/", not "http://test.xx.jj.com".     I assume that's just an error on your part trying to mask some proprietary namespaces.   Next, according to the schema, it should have a single child element named "Request" which is a string.   Your soap message has two children, <User> and <SQL>.    Since "Request" isn't being found, it's just using null.   

> 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.


[jira] Resolved: (CXF-2378) Capturing SOAP body passed from SSRS in CXF method as a parameter

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-2378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-2378.
------------------------------

       Resolution: Invalid
    Fix Version/s: Invalid


Marking invalid.  As noted two months ago, the incoming soap message doesn't match the schema. No response since then.

> 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 
>             Fix For: Invalid
>
>
> 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.