On Nov 14, 2007 3:35 PM, Simon Nash <[EMAIL PROTECTED]> wrote:

> Philipp,
> Thanks for this information.  There are two problems here.
>
> 1. The WS-Addressing To header should not be added unless callbacks
>    or conversations are in use.  Your test does not use callbacks
>    or conversations, so this header should not be present.
>
> 2. The format of the WS-Addressing To header is wrong.  This is a
>    known problem in Tuscany SCA Java 1.0 and 1.0.1: see TUSCANY-1849.
>
> Axis2/C is trying to parse the WS-Addressing header according to
> the WS-Addressing spec.  Because the header format is wrong, this
> parsing fails and you get the error message.



>
>
> I don't think there is any workaround.  We need to fix TUSCANY-1849
> urgently to resolve this problem.  As part of this fix, we should also
> avoid sending WS-Addressing headers unless they are needed for callbacks
> or conversations.
>
>   Simon
>
> Simon Laws wrote:
>
> > On Nov 14, 2007 12:26 PM, Philipp Konradi <[EMAIL PROTECTED]> wrote:
> >
> >
> >>Hi,
> >>
> >>thank you guys very much for taking this issue on.
> >>I've done tcpmonitoring as suggested and I noticed that the 1.0 runtime
> >>was
> >>sending additionally a Header with some Address element.
> >>
> >>Here the SOAP-Message send from 1.0 runtime:
> >>POST /axis2/services/HelloWorldComponent/HelloWorldService HTTP/1.1
> >>       Content-Type: text/xml; charset=UTF-8
> >>       SOAPAction: "HelloWorldService#getGreetings"
> >>       User-Agent: Axis2
> >>       Host: localhost:9090
> >>       Content-Length: 508
> >><?xml version='1.0' encoding='UTF-8'?>
> >><soapenv:Envelope
> >>       xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
> >>       <soapenv:Header>
> >>               <To xmlns="http://www.w3.org/2005/08/addressing";>
> >>                       <wsa:Address
> >>                               xmlns:wsa="
> >>http://www.w3.org/2005/08/addressing";>
> >>
> >>
> http://localhost:9090/axis2/services/HelloWorldComponent/HelloWorldService
> >>                       </wsa:Address>
> >>               </To>
> >>       </soapenv:Header>
> >>       <soapenv:Body>
> >>               <_ns_:getGreetings xmlns:_ns_="http://sample/helloworld";>
> >>                       <_ns_:param1>World</_ns_:param1>
> >>               </_ns_:getGreetings>
> >>       </soapenv:Body>
> >></soapenv:Envelope>
> >>
> >>
> >>Here the SOAP-Message send from 0.99 runtime:
> >>POST /axis2/services/HelloWorldComponent/HelloWorldService HTTP/1.1
> >>       Content-Type: text/xml; charset=UTF-8
> >>       SOAPAction: "HelloWorldService#getGreetings"
> >>       User-Agent: Axis2
> >>       Host: localhost:9090
> >>       Content-Length: 271
> >><?xml version='1.0' encoding='UTF-8'?>
> >><soapenv:Envelope
> >>       xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
> >>       <soapenv:Body>
> >>               <_ns_:getGreetings xmlns:_ns_="http://sample/helloworld";>
> >>                       <_ns_:param1>World</_ns_:param1>
> >>               </_ns_:getGreetings>
> >>       </soapenv:Body>
> >></soapenv:Envelope>
> >>
> >>
> >>Here the SOAP-Message send from Eclipse Web Service Explorer:
> >>POST
> >>
> http://localhost:9090/axis2/services/HelloWorldComponent/HelloWorldService
> >>       HTTP/1.1
> >>       Host: localhost:9090
> >>       Content-Type: text/xml; charset=utf-8
> >>       Content-Length: 337
> >>       Accept: application/soap+xml, application/dime,
> multipart/related,
> >>text/*
> >>       User-Agent: IBM Web Services Explorer
> >>       Cache-Control: no-cache
> >>       Pragma: no-cache
> >>       SOAPAction: "HelloWorldService#getGreetings"
> >>       Connection: close
> >><soapenv:Envelope
> >>       xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmln
> >>       s:q0="http://sample/helloworld";
> >>       xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xml
> >>       ns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
> >>       <soapenv:Body>
> >>               <q0:getGreetings>
> >>                       <q0:param1>ghdfzh</q0:param1>
> >>               </q0:getGreetings>
> >>       </soapenv:Body>
> >></soapenv:Envelope>
> >>
> >>
> >>For me it looks like the soap-header is causing the problem.
> >>What do you think?
> >>Could ws-binding configured in a way not to add the header to the SOAP
> >>message?
> >>
> >>Thanks,
> >>Philipp
> >>
> >>
> >>
> >>
> >>
> >>-----Ursprüngliche Nachricht-----
> >>Von: Simon Nash [mailto:[EMAIL PROTECTED]
> >>Gesendet: Dienstag, 13. November 2007 12:32
> >>An: [email protected]
> >>Betreff: Re: SOAPProcessingException after update from SCA 0.99 to 1.0
> >>
> >>I can think of a few changes between 0.99 and 1.0 that could affect
> >>interoperability, but I don't think any of these would come into
> >>play for the scenario described here.
> >>
> >>For dynamically generated WSDL, a few changes were made to the
> >>generation algorithm that affect methods with no arguments and/or
> >>a void result.  However, the helloworld-ws-reference sample uses
> >>statically created WSDL, not dynamically generated WSDL.
> >>
> >>For callbacks and conversations, the wire protocol used to pass the
> >>necessary information over Web services changed between 0.99 and 1.0.
> >>However, the helloworld-ws-reference sample does not use callbacks
> >>or conversations.
> >>
> >>This error seems to indicate that the Axis2/C service received a
> >>SOAP request containing some unexpected XML data.  Can you run with
> >>a TCP monitor and post the SOAP messages that are being exchanged?
> >>
> >>  Simon Nash
> >>
> >>Simon Laws wrote:
> >>
> >>
> >>>On Nov 11, 2007 4:52 PM, Philipp Konradi <[EMAIL PROTECTED]> wrote:
> >>>
> >>>
> >>>
> >>>>Hi all,
> >>>>
> >>>>after upgrading from Tuscany SCA Java v0.99 to 1.0 one of my sample
> >>>>applications has broken.
> >>>>The app is pretty simple: a Java SCA service calls a Native SCA
> service
> >>>>via
> >>>>Web Services.
> >>>>After version upgrade I'm getting a SOAPProcessingException saying
> "Only
> >>>>Characters are allowed here".
> >>>>
> >>>>Does somebody else experienced something similar? Any explanations
> >>
> >>what's
> >>
> >>>>the reason and how to fix/workaround here?
> >>>>
> >>>>Here some details to the app:
> >>>>The Java SCA service is actually the helloworld-ws-reference sample.
> >>>>The Native SCA service is a simple helloworld implementation in C++
> >>>>deployed
> >>>>in Axis2/C.
> >>>>
> >>>>The call makes it actually to Axis2/C but then Axis2/C returns a SOAP
> >>>>fault
> >>>>message.
> >>>>
> >>>>Here the axis2c log:
> >>>>....
> >>>>[Sun Nov 11 16:07:29 2007] [info] Starting HTTP server thread
> >>>>[Sun Nov 11 16:12:34 2007] [debug]
> >>>>..\..\modules\core\transport\http\http_worker.c(206) Client HTTP
> version
> >>>>HTTP/1.1
> >>>>[Sun Nov 11 16:12:34 2007] [debug]
> >>>>..\..\axiom\src\soap\soap_builder.c(868)
> >>>>Identified soap version is soap11
> >>>>[Sun Nov 11 16:12:34 2007] [debug]
> >>
> >>..\..\modules\core\engine\engine.c(776)
> >>
> >>>>Invoking phase TransportIn
> >>>>[Sun Nov 11 16:12:34 2007] [debug]
> >>
> >>..\..\modules\core\engine\phase.c(358)
> >>
> >>>>Invoke the handler request_uri_based_dispatcher within the phase
> >>>>TransportIn
> >>>>[Sun Nov 11 16:12:34 2007] [debug]
> >>>>..\..\modules\core\engine\req_uri_disp.c(104) Checking for service
> using
> >>>>target endpoint address : http://127.0.0.1:9090/HelloWorldService
> >>>>[Sun Nov 11 16:12:34 2007] [debug]
> >>
> >>..\..\modules\core\engine\engine.c(776)
> >>
> >>>>Invoking phase PreDispatch
> >>>>[Sun Nov 11 16:12:34 2007] [debug]
> >>
> >>..\..\modules\core\engine\phase.c(358)
> >>
> >>>>Invoke the handler AddressingInHandler within the phase PreDispatch
> >>>>[Sun Nov 11 16:12:34 2007] [info] Starting addressing in handler
> >>
> >>.........
> >>
> >>>>[Sun Nov 11 16:12:34 2007] [debug]
> >>>>..\..\axiom\src\soap\soap_fault_code.c(273) trying to set fault
> subcode
> >>
> >>to
> >>
> >>>>fault code more than once
> >>>>[Sun Nov 11 16:12:34 2007] [debug]
> >>
> >>..\..\modules\core\engine\engine.c(776)
> >>
> >>>>Invoking phase MessageOut
> >>>>[Sun Nov 11 16:12:34 2007] [debug]
> >>
> >>..\..\modules\core\engine\phase.c(358)
> >>
> >>>>Invoke the handler AddressingOutHandler within the phase MessageOut
> >>>>[Sun Nov 11 16:12:34 2007] [info] Request served successfully
> >>>>
> >>>>Here the output on the Java side:
> >>>>[java] Injected helloWorldService
> >>>>[java] Called getGreetings
> >>>>[java] Exception in thread "main"
> >>>>org.apache.axiom.soap.SOAPProcessingException: Only Characters are
> >>
> >>allowed
> >>
> >>>>here
> >>>>[java] at
> >>>>org.apache.axiom.soap.impl.builder.SOAP11BuilderHelper.processText
> >>>>(SOAP11BuilderHelper.java:151)
> >>>>[java] at
> >>>>org.apache.axiom.soap.impl.builder.SOAP11BuilderHelper.handleEvent
> >>>>(SOAP11BuilderHelper.java:63)
> >>>>[java] at
> >>>>org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.constructNode(
> >>>>StAXSOAPModelBuilder.java:344)
> >>>>[java] at
> >>>>
> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOMElement(
> >>>>StAXSOAPModelBuilder.java:187)
> >>>>[java] at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(
> >>>>StAXOMBuilder.java:163)
> >>>>[java] at org.apache.axiom.om.impl.llom.OMElementImpl.buildNext(
> >>>>OMElementImpl.java:552)
> >>>>[java] at org.apache.axiom.om.impl.llom.OMElementImpl.getFirstOMChild(
> >>>>OMElementImpl.java:563)
> >>>>[java] at
> >>>>org.apache.axiom.om.impl.llom.OMElementImpl.getFirstChildWithName(
> >>>>OMElementImpl.java:219)
> >>>>[java] at
> org.apache.axiom.soap.impl.llom.soap11.SOAP11FaultImpl.getCode
> >>
> >>(
> >>
> >>>>SOAP11FaultImpl.java:129)
> >>>>[java] at org.apache.axis2.AxisFault.initializeValues(AxisFault.java
> >>
> >>:189)
> >>
> >>>>[java] at org.apache.axis2.AxisFault.<init>(AxisFault.java:183)
> >>>>[java] at
> org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(
> >>>>Utils.java:486)
> >>>>[java] at
> >>>>org.apache.axis2.description.OutInAxisOperationClient.handleResponse(
> >>>>OutInAxisOperation.java:343)
> >>>>[java] at org.apache.axis2.description.OutInAxisOperationClient.send(
> >>>>OutInAxisOperation.java:389)
> >>>>[java] at
> >>>>org.apache.axis2.description.OutInAxisOperationClient.executeImpl(
> >>>>OutInAxisOperation.java:211)
> >>>>[java] at org.apache.axis2.client.OperationClient.execute(
> >>>>OperationClient.java:163)
> >>>>[java] at
> >>>>
> org.apache.tuscany.sca.binding.ws.axis2.Axis2BindingInvoker.invokeTarget
> >>
> >>(
> >>
> >>>>Axis2BindingInvoker.java:102)
> >>>>[java] at
> >>>>org.apache.tuscany.sca.binding.ws.axis2.Axis2BindingInvoker.invoke
> >>>>(Axis2BindingInvoker.java:77)
> >>>>[java] at
> >>>>
> >>>>
> >>
> >>
> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInteceptor.invoke
> >>
> >>>>(DataTransformationInteceptor.java:73)
> >>>>[java] at
> >>>>org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke
> >>>>(JDKInvocationHandler.java:233)
> >>>>[java] at
> >>>>org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke
> >>>>(JDKInvocationHandler.java:130)
> >>>>[java] at $Proxy4.getGreetings(Unknown Source)
> >>>>[java] at helloworld.HelloWorldServiceComponent.getGreetings(
> >>>>HelloWorldServiceComponent.java:30)
> >>>>[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>>>[java] at sun.reflect.NativeMethodAccessorImpl.invoke(
> >>>>NativeMethodAccessorImpl.java:39)
> >>>>[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> >>>>DelegatingMethodAccessorImpl.java:25)
> >>>>[java] at java.lang.reflect.Method.invoke(Method.java:585)
> >>>>[java] at
> >>>>
> >>>>
> >>
> >>
> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke
> >>
> >>>>(JavaImplementationInvoker.java:105)
> >>>>[java] at
> >>>>
> >>
> >>
> org.apache.tuscany.sca.core.databinding.wire.PassByValueInteceptor.invoke(
> >>
> >>>>PassByValueInteceptor.java:49)
> >>>>[java] at
> >>>>org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke
> >>>>(JDKInvocationHandler.java:233)
> >>>>[java] at
> >>>>org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke
> >>>>(JDKInvocationHandler.java:130)
> >>>>[java] at $Proxy4.getGreetings(Unknown Source)
> >>>>[java] at helloworld.HelloWorldClient.main(HelloWorldClient.java:33)
> >>>>[java] Java Result: 1
> >>>>
> >>>>Versions used:
> >>>>Axis2/C: v0.96.
> >>>>SCA/SDO native: 1.0 Milestone Release 3.
> >>>>
> >>>>The app is working fine with 0.99. Also invoking the web service
> (native
> >>>>service) via Eclipse's Web Service Explorer works without any
> problems.
> >>
> >>So
> >>
> >>>>I
> >>>>think the origin of the problem has something to do with 1.0 runtime
> and
> >>>>web
> >>>>service binding itself.
> >>>>
> >>>>I noticed that from 0.99 and 1.0 SCA updated to use axis2 1.3 instead
> >>>>1.2and axiom
> >>>>1.2.5 instead 1.2.4.
> >>>>Maybe that has something to do with the problem.
> >>>>
> >>>>Any help is highly appreciated,
> >>>>
> >>>>Thanks,
> >>>>Philipp
> >>>>
> >>>
> >>>Hi Philipp
> >>>
> >>>I did a quick google for compatibility issues but didn't see anything
> >>>obvious. I'll look a little closer tomorrow. Could you raise  a JIRA
> for
> >>>this and attach the service you are using. We can give it a try and see
> >>
> >>if
> >>
> >>>the same error happens.
> >>>
> >>>Regards
> >>>
> >>>Simon
> >>>
> >>
> >>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >
> > Hi Philipp
> >
> > Could well be the ws-addressing headers causing problems. Looking at the
> > code of the web service binding there doesn't appear to be a way of
> turning
> > them off currently. We might want to consider enabling ws address as
> matter
> > of policy in the future.
> >
> > Axis2C should be able to handle ws-addressing properly. What version of
> > Axis2C are you on? Looking at the dependencies in the docs for native
> SCA it
> > specifies quite and old version. I don't know without trying whether
> later
> > versions will run with native SCA but would be worth a try.
> >
> > As part of the original log dump that you posted Axis reported
> >
> > ..\..\modules\core\engine\req_uri_disp.c(104) Checking for service using
> > target endpoint address : http://127.0.0.1:9090/HelloWorldService
> >
> > Which is a little odd as it doesn't match the endpoint from either the
> HTTP
> > request or from the addressing header. Do you get the same logged output
> > when it works?
> >
> > I think my strategy for looking at this would have to be to get it in
> the
> > debugger and find out what it is really complaining about.  I can't tell
> > what the error "org.apache.axiom.soap.SOAPProcessingException: Only
> > Characters are allowed here" means other than it's reported by Java
> Axiom
> > when it's expecting a character in the input stream and doesn't get one.
> Can
> > you tell me what the error response SOAP message looks like?
> >
> > Regards
> >
> > Simon
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> Sounds like Simon knows what he's talking about. Saves a bit of
debugging:-)

Simon

Reply via email to