Dasarath Weeratunge schrieb:
Quoting Benjamin Schmeling <[EMAIL PROTECTED]>:
Hi,
I have exactly the same problem like you, I have already mailed to the
Sandesha developer list. The problem is that Sandesha does not support
global addressing handlers, because addressing is handled internally.
Maybe you should write to this list, maybe they will work on getting
this solved. Another possibility would be to configure Kandula without
using global addressing handlers but I don't know if this is possible.
Hi,
The problem is in the addressing implementation which is not part of
kandula. It is not exactly a problem but a feature becoming a pain. Like
Hannes suggested just use a non-empty soap action and things should work fine.
That doesn't fix the problem. The global addresing handler checks for
already existent addressing headers. They are already there when the
SOAP message is sent by using Sandesha. The addressing headers are added
to the SOAP message by Sandesha but they are not added as property for
the call object so they are ignored by the handler and replaced by
default ones. I talked to Jaliya about this and he fixed that. But
nevertheless there are other problems with Sandesha yet...I cannot
follow him yet about the remaining problem.
Is Sandesha using a different addressing impl?
No.
It will be great if you guys
could send us a sample application that uses both Kandula and Sandesha
together.
The problem occurs also if you have two separate web services where one
is using Sandesha and one that is using Kandula. The cause for the
problem are the global addresing handlers. If they are present Sandesha
does not wor;. if not, Kandula does not work properly.
thanks,
--dasarath
my goal is to develop an example using both kandula and sandesha on
axis 1.3
I've made a client that calls a service A which in turn invokes a
service B in
a reliabile and transactional way.
I've used separately both frameworks and all seem to work, but then I
tried to
join kandula and sandesha using the following client config wsdd file
for the
service A:
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="adminPassword" value="admin"/>
<parameter name="enableNamespacePrefixOptimization" value="true"/>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="sendXsiTypes" value="true"/>
<parameter name="attachments.implementation"
value="org.apache.axis.attachments.AttachmentsImpl"/>
<parameter name="sendXMLDeclaration" value="true"/>
<!-- handler kandula -->
<requestFlow>
<handler
type="java:org.apache.axis.message.addressing.handler.AddressingHandler"
/>
<handler type="java:org.apache.kandula.coordinator.at.TxHandler" />
</requestFlow>
<responseFlow>
<handler
type="java:org.apache.axis.message.addressing.handler.AddressingHandler"
/>
</responseFlow>
</globalConfiguration>
<!-- handler sandesha -->
<handler name="RMSender" type="java:org.apache.sandesha.client.RMSender"/>
<transport name="java"
pivot="java:org.apache.axis.transport.java.JavaSender"/>
<transport name="http"
pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<transport name="local"
pivot="java:org.apache.axis.transport.local.LocalSender"/>
<transport name="RMTransport" pivot="RMSender"/>
</deployment>
The following deploy wsdd file for service A:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="Coordinatore" provider="java:RPC">
<parameter name="className" value="kandulaClient.Coordinatore"/>
<parameter name="allowedMethods" value="*" />
<requestFlow>
<handler
type="java:org.apache.axis.message.addressing.handler.AddressingHandler"
/>
<handler type="java:org.apache.kandula.coordinator.at.TxHandler" />
</requestFlow>
<responseFlow>
<handler
type="java:org.apache.axis.message.addressing.handler.AddressingHandler"
/>
</responseFlow>
<transport name="local"
pivot="java:org.apache.axis.transport.local.LocalSender"/>
<transport name="java"
pivot="java:org.apache.axis.transport.java.JavaSender"/>
<typeMapping
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
qname="wsa:EndpointReference"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
type="java:org.apache.axis.message.addressing.EndpointReferenceType"/>
<typeMapping
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
qname="wsa:ReferencePropertiesType"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
type="java:org.apache.axis.message.addressing.ReferencePropertiesType"/>
<typeMapping
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory"
encodingStyle=""
qname="wsa:Address"
serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory"
type="java:org.apache.axis.message.addressing.Address"/>
<typeMapping
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory"
encodingStyle=""
qname="wsa:PortType"
serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory"
type="java:org.apache.axis.message.addressing.PortType" />
<typeMapping
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory"
encodingStyle=""
qname="wsa:ServiceNameType"
serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory"
type="java:org.apache.axis.message.addressing.ServiceNameType" />
</service>
<service name="RMService" provider="Handler">
<requestFlow>
<handler
type="java:org.apache.sandesha.ws.rm.handlers.RMServerRequestHandler"></handler>
<handler
type="java:org.apache.axis.message.addressing.handler.AddressingHandler"></handl
er>
</requestFlow>
<parameter name="handlerClass"
value="org.apache.sandesha.ws.rm.providers.RMClientProvider"/>
<parameter name="className" value="org.apache.sandesha.client.RMService"/>
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="request"/>
</service>
</deployment>
and for the service B :
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="Servizio1" provider="Handler">
<requestFlow>
<handler
type="java:org.apache.sandesha.ws.rm.handlers.RMServerRequestHandler"></handler>
<handler
type="java:org.apache.axis.message.addressing.handler.AddressingHandler"></handl
er>
</requestFlow>
<parameter name="handlerClass"
value="org.apache.sandesha.ws.rm.providers.RMProvider"/>
<parameter name="className" value="kandulaServizio1.Servizio1"/>
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="request"/>
</service>
</deployment>
I get the following error from the server :
AxisFault
faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.apache.axis.types.URI$MalformedURIException: Cannot
initialize URI with empty parameters.
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}
stackTrace:org.apache.axis.types.URI$MalformedURIException:
Cannot initialize URI with empty parameters.
at org.apache.axis.types.URI.initialize(URI.java:614)
at org.apache.axis.types.URI.<init>(URI.java:311)
...........
any suggestion ?
Thanks Valerio
---------------------------------------------------------------------
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]