Folks,

I am writing as a developer on the Apache Tuscany project.

We are building a version of Tuscany that runs on OSGi - and we use Axis2 in 
our codebase.

We're experiencing some problems associated with running Axis2 with Tuscany 
under OSGi and I'd
appreciate any help you can give us.

The problem we've run into relates to user-provided Message Receiver classes 
that are part of the
Tuscany code and which are configured into axis2.xml as follows:

    <messageReceivers>

       <!-- Added by Tuscany -->
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only";

class="org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceInMessageReceiver"/>

        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only";
                         
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out";
                         
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>

       <!-- Added by Tuscany -->
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out";

class="org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceInOutSyncMessageReceiver"/>

       <!-- Added by Tuscany -->
        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only";

class="org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceInMessageReceiver"/>

        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only";
                         
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out";
                         
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>

       <!-- Added by Tuscany -->
        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out";

class="org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceInOutSyncMessageReceiver"/>

    </messageReceivers>

When we run the code using OSGi, we get class loading exceptions for those 
Tuscany message receiver
classes, since the code that loads those classes is in the Axis2 code 
(AxisConfigBuilder) - but that
code has no declared dependencies on the Tuscany packages containing the 
message receivers - so that
we get class not found exceptions.

Do you have a solution for this problem?

I got the code working with the Eclipse/Equinox version of OSGi by patching the 
following into the
manifest for the axis2-kernel jar:

Eclipse-BuddyPolicy: dependent

...and then declaring the relevant Tuscany jar files as being buddies of the 
axis2-kernel bundle in
thier manifests.

However, I know that this is really a sticking-plaster solution and will only 
currently work for the
Equinox version of OSGi.  Do you have a nice neat solution that will work for 
all the OSGi
implementations?


Yours,  Mike.

Reply via email to