Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 23198 invoked from network); 2 Dec 2003 22:13:56 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 2 Dec 2003 22:13:56 -0000 Received: (qmail 93251 invoked by uid 500); 2 Dec 2003 22:13:24 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 93056 invoked by uid 500); 2 Dec 2003 22:13:22 -0000 Mailing-List: contact axis-dev-help@ws.apache.org; run by ezmlm Precedence: bulk Reply-To: axis-dev@ws.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list axis-dev@ws.apache.org Received: (qmail 93035 invoked from network); 2 Dec 2003 22:13:22 -0000 X-MimeOLE: Produced By Microsoft Exchange V6.0.6487.1 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C3B921.82670647" Subject: Please help: How to invoke intended operation when the multiple Message-style operations are defined in one WSDL and served by the single endpoint location URL Date: Tue, 2 Dec 2003 16:13:26 -0600 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Please help: How to invoke intended operation when the multiple Message-style operations are defined in one WSDL and served by the single endpoint location URL Thread-Index: AcO5IYIUI9qK/oSCQ1eVO0Ta7eA9ig== From: "Wagh, Shrikant" To: , X-OriginalArrivalTime: 02 Dec 2003 22:13:27.0478 (UTC) FILETIME=[82B9CD60:01C3B921] X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N This is a multi-part message in MIME format. ------_=_NextPart_001_01C3B921.82670647 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Axis users and developers, =20 I'm facing a very unique issue and any help, suggestion pointers to resolve this would be highly appreciated. =20 Context of the issue ---------------------------- =20 I have 6 operations (web services) in one WSDL. All these web services are deployed as Axis-Message style services. All of these web services takes Document as input and returns the document. Following are the method signatures I have for these web services. =20 1. public Document createProfile(Document body); 2. public Document updateProfile(Document body); 3. public Document retrieveProfile(Document body); 4. public Document retrieveTemplate(Document body); 5. public Document retrieveTemplateAndProfile(Document body); =20 Here is the server-config.wsdd file excerpts for these services. =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 Problem Statement --------------------------- My problem is, if I use the axis client then I'm not able to invoke the intended operation. As per WSDL 1.1 specification section #3.5, the request for doc lit the input data is wrapped in the message-part name element and it appears in the body of the request. If I do this, then I'm able to invoke the intended operation. But the Axis Client does not wrap the input in message-part name element. Any help/suggestions in resolving the following issues are much appreciated. =20 1. How can I make my DII client to invoke the intended operation? 2. Why Axis does not follow the WSDL 1.1 specification section #3.5 and wraps the input in message part name (see the sample request by Axis and the correct request which is able to invoke the service, at the end of this email) 3. Is there any workaround, other than specifying each operation in a separate WSDL and deploy those as different endpoint. i.e. one operation one WSDL, one operation each endpoint. 4. Specifying the SOAPAction for operation does not work in Axis, Looks like this is and Axis limitation. I even saw the excerpts of the Axis source code posted by one of the user, which does not handle the SOAPAction. What are my other alternatives. =20 =20 Here is the sample request which can invoke the intended operation. =20 AppIDLangIDHppID SIDDummyTemplateID 2003-11-14T16:44:50.633Z =20 Here is how the request generated by Axis client, which fails to invoke the intended operation =20 AppIDLangIDHppID SIDDummyTemplateID 2003-11-14T16:44:50.633Z =20 Any way, either by modifying the WSDD, or any change on the client side, or any other possible way by which I can invoke the intended operation of message style, where the multiple operations are served by single endpoint location. =20 Thanks in advance. Shrikant Wagh HPP/eProfile QA Lead HP =20 =20 ------_=_NextPart_001_01C3B921.82670647 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi Axis users and developers,

 

I'm facing a very = unique issue and any help, suggestion pointers to resolve this would be highly appreciated.

 

Context of the = issue

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

 

I have 6 operations = (web services) in one WSDL. All these web services are deployed as = Axis-Message style services. All of these web services takes Document as input and = returns the document. Following are the method signatures I have for these web = services.

 

1. public Document = createProfile(Document body);

2. public Document = updateProfile(Document body);

3. public Document = retrieveProfile(Document body);

4. public Document = retrieveTemplate(Document body);

5. public Document = retrieveTemplateAndProfile(Document body);

 

Here is  the = server-config.wsdd file excerpts for these services.

 

<service = name=3D"EProfileService" provider=3D"java:MSG" style=3D"message" use=3D"literal">

 

       <parameter name=3D"wsdlTargetNamespace" value=3D"http://eprofile.globalops.hp.com"/>

 

       <parameter name=3D"wsdlServiceElement" = value=3D"EProfileServiceService"/>

 

       <parameter name=3D"wsdlServicePort" = value=3D"EProfileService"/>

 

       <parameter name=3D"className" = value=3D"com.hp.eprofile.EProfileSoapBindingImpl"/>

 

       <parameter = name=3D"wsdlPortType" value=3D"EProfileService"/>

 

       <operation name=3D"createProfile" = qname=3D"operNS:createProfile" = xmlns:operNS=3D"http://eprofile.globalops.hp.com" returnQName=3D"retNS:createProfileReturn" = xmlns:retNS=3D"http://eprofile.globalops.hp.com/eProfileService"= ; returnType=3D"rtns:Document" = xmlns:rtns=3D"http://xml.apache.org/xml-soap" >

 

         <parameter = qname=3D"pns:createProfile" xmlns:pns=3D"http://eprofile.globalops.hp.com/eProfileService" type=3D"tns:Document" = xmlns:tns=3D"http://xml.apache.org/xml-soap"/>=

 

       = </operation>

 

       <operation name=3D"updateProfile" = qname=3D"operNS:updateProfile" = xmlns:operNS=3D"http://eprofile.globalops.hp.com" returnQName=3D"retNS:updateProfileReturn" = xmlns:retNS=3D"http://eprofile.globalops.hp.com/eProfileService"= ; returnType=3D"rtns:Document" = xmlns:rtns=3D"http://xml.apache.org/xml-soap" >

 

         <parameter = qname=3D"pns:updateProfile" xmlns:pns=3D"http://eprofile.globalops.hp.com/eProfileService" type=3D"tns:Document" = xmlns:tns=3D"http://xml.apache.org/xml-soap"/>=

 

       = </operation>

  =      

      <operation name=3D"retrieveProfile" = qname=3D"operNS:retrieveProfile" = xmlns:operNS=3D"http://eprofile.globalops.hp.com" returnQName=3D"retNS:retrieveProfileReturn" = xmlns:retNS=3D"http://eprofile.globalops.hp.com/eProfileService"= ; returnType=3D"rtns:Document" = xmlns:rtns=3D"http://xml.apache.org/xml-soap" >

 

      <parameter = qname=3D"pns:retrieveProfile" xmlns:pns=3D"http://eprofile.globalops.hp.com/eProfileService" type=3D"tns:Document" = xmlns:tns=3D"http://xml.apache.org/xml-soap"/>=

 

      = </operation>

 

       <operation = name=3D"retrieveTemplate" qname=3D"operNS:retrieveTemplate" = xmlns:operNS=3D"http://eprofile.globalops.hp.com" returnQName=3D"retNS:retrieveTemplateReturn" = xmlns:retNS=3D"http://eprofile.globalops.hp.com/eProfileService"= ; returnType=3D"rtns:Document" = xmlns:rtns=3D"http://xml.apache.org/xml-soap" >

 

         <parameter = qname=3D"pns:retrieveTemplate" xmlns:pns=3D"http://eprofile.globalops.hp.com/eProfileService" type=3D"tns:Document" = xmlns:tns=3D"http://xml.apache.org/xml-soap"/>=

 

       = </operation>

 

       <operation name=3D"retrieveTemplateAndProfile" = qname=3D"operNS:retrieveTemplateAndProfile" xmlns:operNS=3D"http://eprofile.globalops.hp.com/retrieveTemplateAnd= Profile" returnQName=3D"retNS:retrieveTemplateAndProfileReturn" = xmlns:retNS=3D"http://eprofile.globalops.hp.com/eProfileService"= ; returnType=3D"rtns:Document" = xmlns:rtns=3D"http://xml.apache.org/xml-soap" >

 

         <parameter = qname=3D"pns:ApplicationTemplateChecksum" xmlns:pns=3D"http://eprofile.globalops.hp.com/eProfileService" type=3D"tns:Document" = xmlns:tns=3D"http://xml.apache.org/xml-soap"/>=

 

       = </operation>

 

       <operation name=3D"checkTemplate" = qname=3D"operNS:checkTemplate" = xmlns:operNS=3D"http://eprofile.globalops.hp.com" returnQName=3D"retNS:checkTemplateReturn" = xmlns:retNS=3D"http://eprofile.globalops.hp.com/eProfileService"= ; returnType=3D"rtns:Document" = xmlns:rtns=3D"http://xml.apache.org/xml-soap" >

 

         <parameter = qname=3D"pns:checkTemplate" xmlns:pns=3D"http://eprofile.globalops.hp.com/eProfileService" type=3D"tns:Document" = xmlns:tns=3D"http://xml.apache.org/xml-soap"/>=

 

       = </operation>

 

       <parameter = name=3D"allowedMethods" value=3D"checkTemplate retrieveTemplate createProfile updateProfile = retrieveProfile retrieveTemplateAndProfile"/>

 

   = </service>

 

Problem = Statement

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

My problem is, if I = use the axis client then I'm not able to invoke the intended operation. As per = WSDL 1.1 specification section #3.5, the request for doc lit the input data is = wrapped in the message-part name element and it appears in the body of the = request. If I do this, then I'm able to invoke the intended operation. But the Axis = Client does not wrap the input in message-part name element. Any = help/suggestions in resolving the following issues are much appreciated.

 

1. How can I make = my DII client to invoke the intended operation? 2. Why Axis does not follow the = WSDL 1.1 specification section #3.5 and wraps the input in message part name = (see the sample request by Axis and the correct request which is able to = invoke the service, at the end of this email) 3. Is there any workaround, other = than specifying each operation in a separate WSDL and deploy those as = different endpoint. i.e. one operation one WSDL, one operation each endpoint. 4. Specifying the SOAPAction for operation does not work in Axis, Looks = like this is and Axis limitation. I even saw the excerpts of the Axis source code = posted by one of the user, which does not handle the SOAPAction. What are my = other alternatives.

 

 

Here is the sample = request which can invoke the intended operation.

 

<?xml version=3D"1.0" = encoding=3D"UTF-8"?>

<SOAP-ENV:Envelope = xmlns:SOAP-ENV=3D"http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema" = xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance">

 <SOAP-ENV:Header><ns1:eProfileHeader xmlns:ns1=3D"http://eprofile.globalops.hp.com/eProfileService"&= gt;<ApplicationID>AppID</ApplicationID><LanguageCode>La= ngID</LanguageCode><HPPID>HppID</HPPID><SiteMinderSI= D>SID</SiteMinderSID><TemplateID>DummyTemplateID</Templ= ateID></ns1:eProfileHeader> </SOAP-ENV:Header>  <SOAP-ENV:Body>

  = <checkTemplate xmlns=3D"http://eprofile.globalops.hp.com/eProfileService">&= lt;ApplicationTemplateChecksum>

         = <TemplateChecksum>2003-11-14T16:44:50.633Z</TemplateChecksum>=

</ApplicationTemplateChecksum></checkTemplate>

 </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

 

Here is how the = request generated by Axis client, which fails to invoke the intended = operation

 

<?xml version=3D"1.0" = encoding=3D"UTF-8"?>

<SOAP-ENV:Envelope = xmlns:SOAP-ENV=3D"http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema" = xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance">

 <SOAP-ENV:Header><ns1:eProfileHeader xmlns:ns1=3D"http://eprofile.globalops.hp.com/eProfileService"&= gt;<ApplicationID>AppID</ApplicationID><LanguageCode>La= ngID</LanguageCode><HPPID>HppID</HPPID><SiteMinderSI= D>SID</SiteMinderSID><TemplateID>DummyTemplateID</Templ= ateID></ns1:eProfileHeader> </SOAP-ENV:Header>  <SOAP-ENV:Body>

  = <ApplicationTemplateChecksum>

         = <TemplateChecksum>2003-11-14T16:44:50.633Z</TemplateChecksum>=

</ApplicationTemplateChecksum>

 </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

 

Any way, either by = modifying the WSDD, or any change on the client side, or any other possible way by = which I can invoke the intended operation of message style, where the multiple operations are served by single endpoint location.

 

Thanks in = advance.

Shrikant = Wagh

HPP/eProfile QA = Lead

HP

 

 

=00 ------_=_NextPart_001_01C3B921.82670647--