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
