Hi Paul,
Hi anybody knowing PocketSOAP and ws-addressing!


I give you 3 requests/replies pairs. the first request/reply pair is from my 
well 
working SOAPClient.java calling start at 
http://localhost:8080/axis2/serivises/MyService5

the second pair is a request/reply from a half way-finished PocketSOAP-Client 
to the same EPR. 

the third pair is a request/reply with an expected fault in the reply due to a 
missing wsa-header-part


The questions was asked at the yahoo-group for pocketsoap:
Is ws-addressing somehow supported, and how can I add nested headers such as 
wsa:ReplyTo for MessageID and Action
headers.


The working Java request / reply

POST /axis2/services/MyService5 HTTP/1.1
SOAPAction: "urn:start"
User-Agent: Axis2
Host: 127.0.0.1:9090
Transfer-Encoding: chunked
Content-Type: text/xml; charset=UTF-8

291
<?xml version='1.0' encoding='UTF-8'?>
   <soapenv:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing"; 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
      <soapenv:Header>
         <wsa:To>http://localhost:9090/axis2/services/MyService5</wsa:To>
         <wsa:ReplyTo>
            
<wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
         </wsa:ReplyTo>
         
<wsa:MessageID>urn:uuid:8DF85ED2DE36FE1C1411744625634681</wsa:MessageID>
         <wsa:Action>urn:start</wsa:Action>
      </soapenv:Header>
      <soapenv:Body>
         <example5:start xmlns:example5="http://example15.org/example5";>
            <example5:Text>Axis2 'SOAPSession' Start-String</example5:Text>
         </example5:start>
      </soapenv:Body>
   </soapenv:Envelope>

is answered by the server

4fe
<?xml version='1.0' encoding='UTF-8'?>
   <soapenv:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing"; 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
      <soapenv:Header>
         <wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To>
         <wsa:ReplyTo>
            
<wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
            <wsa:ReferenceParameters>
               <axis2:ServiceGroupId 
xmlns:axis2="http://ws.apache.org/namespaces/axis2";>urn:uuid:DEECE2BACEA247F25B1174462563889506</axis2:ServiceGroupId>
            </wsa:ReferenceParameters>
         </wsa:ReplyTo>
         
<wsa:MessageID>urn:uuid:DEECE2BACEA247F25B1174462563889507</wsa:MessageID>
         <wsa:Action>urn:start</wsa:Action>
         <wsa:RelatesTo 
wsa:RelationshipType="http://www.w3.org/2005/08/addressing/reply";>urn:uuid:8DF85ED2DE36FE1C1411744625634681</wsa:RelatesTo>
      </soapenv:Header>
      <soapenv:Body>
         <ws:root xmlns:tns="http://example5.userguide"; xmlns:ws="workspace" 
xmlns:f="feld">Wed Mar 21 08:36:03 CET 2007
            <ws:in>
               <f:yuck0>blah0</f:yuck0>
            </ws:in>
            <ws:old>
               <f:yuck1>blah1</f:yuck1>
            </ws:old>
            <ws:out>
               <f:SessionContext>[EMAIL PROTECTED]</f:SessionContext>
               <f:sessionCreated>Wed Mar 21 08:36:03 CET 2007</f:sessionCreated>
               <f:sessionAccessed>Wed Mar 21 08:36:03 CET 
2007</f:sessionAccessed>
            </ws:out>
         </ws:root>
      </soapenv:Body>
   </soapenv:Envelope>


my working VB6 / PocketSOAP to Axis2 Web-Service is

POST /axis2/services/MyService5 HTTP/1.1
Host: 127.0.0.1:9090
Accept-Charset: UTF-8, UTF-16;q=0.8, iso-8859-1;q=0.8
Accept-Encoding: deflate, gzip
Content-Type: text/xml; charset=UTF-8
SOAPAction: "urn:start"
User-Agent: PocketSOAP/1.5.4/PocketHTTP/1.2.7
Content-Length: 323

<S:Envelope     xmlns:S="http://schemas.xmlsoap.org/soap/envelope/";     
        xmlns:XS="http://www.w3.org/2001/XMLSchema";     
        xmlns:XI="http://www.w3.org/2001/XMLSchema-instance";    
        xmlns:a="http://www.w3.org/2005/08/addressing";>
   <S:Body>
      <a:start>
         <inputString XI:type="XS:string">Hello World</inputString>
      </a:start>
   </S:Body></S:Envelope>

is answered by the server with
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=182AA5F1C7F6588F17296FBFD7A7B428; Path=/axis2
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 21 Mar 2007 09:13:00 GMT

265
<?xml version='1.0' encoding='UTF-8'?>
   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
      <soapenv:Header />
      <soapenv:Body>
         <ws:root xmlns:tns="http://example5.userguide"; xmlns:ws="workspace" 
xmlns:f="feld">Wed Mar 21 10:13:00 CET 2007
            <ws:in>
               <f:yuck0>blah0</f:yuck0>
            </ws:in>
            <ws:old>
               <f:yuck1>blah1</f:yuck1>
            </ws:old>
            <ws:out>
               <f:SessionContext>[EMAIL PROTECTED]</f:SessionContext>
               <f:sessionCreated>Wed Mar 21 10:13:00 CET 2007</f:sessionCreated>
               <f:sessionAccessed>Wed Mar 21 10:13:00 CET 
2007</f:sessionAccessed>
            </ws:out>
         </ws:root>
      </soapenv:Body>
   </soapenv:Envelope>
0


But with this initial reply I can not go into scope=soapsession



So I am about to add ws-addressing headers by hand and fall short because I do 
not know how to add nested-headers using PocketSOAP

my VB6 not-yet-ready PockeSOAP request is

POST /axis2/services/MyService5 HTTP/1.1
Host: 127.0.0.1:9090
Accept-Charset: UTF-8, UTF-16;q=0.8, iso-8859-1;q=0.8
Accept-Encoding: deflate, gzip
Content-Type: text/xml; charset=UTF-8
SOAPAction: "urn:start"
User-Agent: PocketSOAP/1.5.4/PocketHTTP/1.2.7
Content-Length: 424

<S:Envelope     xmlns:S="http://schemas.xmlsoap.org/soap/envelope/";     
        xmlns:XS="http://www.w3.org/2001/XMLSchema";     
        xmlns:XI="http://www.w3.org/2001/XMLSchema-instance";    
        xmlns:a="http://www.w3.org/2005/08/addressing";>
   <S:Header>
      <a:To 
XI:type="XS:string">http://localhost:9090/axis2/services/MyService5</a:To>
   </S:Header>
   <S:Body>
      <a:start>
         <inputString XI:type="XS:string">Hello World</inputString>
      </a:start>
   </S:Body></S:Envelope>


gets the following reply and makes the PocketSOAP parser fail


HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=EE14D0F9E4ED6921A2402A6C5EE2E27E; Path=/axis2
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 21 Mar 2007 09:13:43 GMT
Connection: close

e3f
<?xml version='1.0' encoding='UTF-8'?>
   <soapenv:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing"; 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
      <soapenv:Header>
         <wsa:ReplyTo>
            <wsa:Address>http://www.w3.org/2005/08/addressing/none</wsa:Address>
         </wsa:ReplyTo>
         
<wsa:MessageID>urn:uuid:DEECE2BACEA247F25B1174468423161520</wsa:MessageID>
         <wsa:Action>http://www.w3.org/2005/08/addressing/fault</wsa:Action>
         <wsa:FaultDetail>
            <wsa:ProblemHeaderQName>wsa:Action</wsa:ProblemHeaderQName>
         </wsa:FaultDetail>
      </soapenv:Header>
      <soapenv:Body>
         <soapenv:Fault>
            <faultcode>wsa:MessageAddressingHeaderRequired</faultcode>
            <faultstring>A required header representing a Message Addressing 
Property is not present</faultstring>
            <detail>
               <Exception>org.apache.axis2.AxisFault: A required header 
representing a Message Addressing Property is not present&#xd;  at 
org.apache.axis2.addressing.AddressingFaultsHelper.triggerAddressingFault(AddressingFaultsHelper.java:150)&#xd;
      at 
org.apache.axis2.addressing.AddressingFaultsHelper.triggerMessageAddressingRequiredFault(AddressingFaultsHelper.java:117)&#xd;
       at 
org.apache.axis2.handlers.addressing.AddressingFinalInHandler.checkForMandatoryHeaders(AddressingFinalInHandler.java:60)&#xd;
        at 
org.apache.axis2.handlers.addressing.AddressingInHandler.extractAddressingInformation(AddressingInHandler.java:173)&#xd;
     at 
org.apache.axis2.handlers.addressing.AddressingInHandler.invoke(AddressingInHandler.java:95)&#xd;
    at org.apache.axis2.engine.Phase.invoke(Phase.java:381)&#xd;    at 
org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:518)&#xd;  at 
org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:483)&#xd; at 
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:319)&#xd;
  at 
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:247)&#xd;   
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)&#xd;    at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)&#xd;    at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)&#xd;
       at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)&#xd;
       at 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)&#xd;
  at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)&#xd;
       at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)&#xd;
       at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)&#xd;
     at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)&#xd;
     at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)&#xd;
   at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)&#xd;
   at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)&#xd;
       at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)&#xd;
     at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)&#xd; 
     at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)&#xd;
      at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)&#xd;
      at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)&#xd;
 at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)&#xd;
      at java.lang.Thread.run(Thread.java:595)&#xd;</Exception>
            </detail>
         </soapenv:Fault>
      </soapenv:Body>
   </soapenv:Envelope>
0

The fault happens because I am not finsihed yet adding all required 
ws-addressing headers manually 
and in fact I dont know now how to add nested headers with PocketSOAP. So the 
fault was expected.


The question I have for the PocketSOAP VB Client developers is:

How to add the <wsa:ReplyTo> header containing 2 nodes <was:MessageID> and 
<wsa:Action> using the PocketSOAP Toolkit. 

Thanks to anybody helping to close my gap between the PocketSOAP / Visual Basic 
and the Java / Axis2 world.

Josef





-----Ursprüngliche Nachricht-----
Von: Stadelmann Josef [mailto:[EMAIL PROTECTED]
Gesendet: Montag, 19. März 2007 10:30
An: [email protected]
Betreff: AW: [AXIS2] PocketSOAP or ASP.NET & Visual Studio.NET to
connect to an AXIS2 Web-Service


Paul,

No I have not done so. So far the examples to the existing PocketSOAP
Servers run very well even through our out-going proxy gateway
which demands username and password to get access to i.e. to a stock 
quote server. However we total fail talking to any Axis2 servers. The 
PocketSOAP line in error is the line after the send takes ppace, that is
the line which should parse the returned OM Element.

But well, let's use TCPMon now. - will keep you informed.

Josef


-----Ursprüngliche Nachricht-----
Von: Paul Fremantle [mailto:[EMAIL PROTECTED]
Gesendet: Montag, 19. März 2007 10:12
An: [email protected]
Betreff: Re: [AXIS2] PocketSOAP or ASP.NET & Visual Studio.NET to
connect to an AXIS2 Web-Service


Josef

Have you already posted any TCPMON traces of the interactions with
PocketSOAP? If not I'd love to look at them. TCPMON captures the HTTP
level flows and you can save to a file.

Paul

On 3/19/07, Stadelmann Josef <[EMAIL PROTECTED]> wrote:
>
>
>
> Hi all,
>
> I would like your thoughts and know about your experiences on the following
> subject matters and approach.
>
> We have an Axis2 1.1 running and use Java clients based on the userguide
> SOAPClient example.
>
> Such a clients should now migrated away from Java to a Microsoft
> Environment.
>
> We have done some basic tests using Visaul Basic 6.0 and PocketSOAP. So far
> we are unable to talk to axis2 1.1 by PocketSOAP,
>
> maybe we do something wrong, which is possible in absence of richt
> documentation, or documentation adressing the specific needs
>
> of a PocketSOAP VB Client talking to an Axis2 1.1 web-service.
>
> So we aim at considering a move to and an introduction of Visual Studio.NET
> and ASP.NET to get a client able to talk to axis2 1.1
>
> For Both PocketSOAP & VB 6.0 as well as Visual Studio.NET + ASP.NET we would
> like to have your experiences.
>
> What is the better choice / approach to develope a client talking to an
> axis2 web services and passing an OM Element?
>
> Thank's for any hints and guidelines
> Josef


-- 
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair

http://bloglines.com/blog/paulfremantle
[EMAIL PROTECTED]

"Oxygenating the Web Service Platform", www.wso2.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to