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

Reply via email to