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]