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
 at org.apache.axis2.addressing.AddressingFaultsHelper.triggerAddressingFault(AddressingFaultsHelper.java:150)
 at org.apache.axis2.addressing.AddressingFaultsHelper.triggerMessageAddressingRequiredFault(AddressingFaultsHelper.java:117)
 at org.apache.axis2.handlers.addressing.AddressingFinalInHandler.checkForMandatoryHeaders(AddressingFinalInHandler.java:60)
 at org.apache.axis2.handlers.addressing.AddressingInHandler.extractAddressingInformation(AddressingInHandler.java:173)
 at org.apache.axis2.handlers.addressing.AddressingInHandler.invoke(AddressingInHandler.java:95)
 at org.apache.axis2.engine.Phase.invoke(Phase.java:381)
 at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:518)
 at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:483)
 at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:319)
 at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:247)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
 at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
 at java.lang.Thread.run(Thread.java:595)
</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]
