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

Reply via email to