You are viewing a plain text version of this content. The canonical link for it is here.
Posted to muse-user@ws.apache.org by "St Jacques, Robert" <Ro...@xerox.com> on 2008/04/09 23:11:39 UTC

Muse/OSGi with multiple web service bundles?

Hi,

 

I'm running into problems trying to get Muse to run in an OSGi
configuration with web services in more than one bundle.  The idea is
that I would like to package web services into different bundles and
enable/disable them by adding/removing them from my Equinox install.

 

For example, if I have two services "Add" and "Subtract" I would like to
be able to run them independently of each other.  Currently I have two
separate bundles installed in my "plug-ins" directory.  Each has it's
own "OSGI-INF/muse.xml," and each works fine when run separately.  For
example, if I run just the "Add" service I can access it at
http://localhost:80/Add/services/Add <http://localhost/Add/services/Add>
and get the expected results.  Similarly, if I run just the Subtract
service I can point a client at
http://localhost:80/Subtract/services/Subtract
<http://localhost/Subtract/services/Subtract>  and, again I get the
expected results.

 

When I try to run both at the same time, however, the platform gets
confused.  Calls to "Add" will work, but calls to "Subtract" fail.  If I
try to access the service through
http://localhost:80/Subtract/services/Subtract
<http://localhost/Subtract/services/Subtract>  the WSDL I get the
following error message:

 

ID = 'DestinationUnreachable'] There is no resource available at the
given EPR: 

 

<wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing">

 
<wsa:Address>http://localhost:80/Subtract/services/Subtract</wsa:Address
>

</wsa:EndpointReference>

 

The existing EPRs hosted by this endpoint are: 

 

<wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing">

    <wsa:ReferenceParameters
xmlns:wsa="http://www.w3.org/2005/08/addressing"/>

    <wsa:Address>http://localhost/Add/services/Subtract</wsa:Address>

</wsa:EndpointReference>

 

So it's getting stuck on the "Add" context I setup in the Add service
bundle.  I then modified my client to point at
".../Add/services/Subtract" and got the following error on the client:

 

Document root element is missing.

 

With no errors on the server.  In fact, the muse logs show incoming SOAP
packets, but nothing else (not even an error log).

 

It seems like Muse is getting confused because of the two different
"muse.xml" configuration files, and it definitely seems to be getting
stuck on the first one it reads, which makes sense, but I'm stumped as
to how to configure muse to load the services separately.

 

Is there any way to dynamically add (and remove) web services to Muse at
runtime?  Is there any documentation to which someone can point me?  I
have read through the tutorial and the parts of the reference manual
that mention the muse.xml, but I haven't found anything there (yet) that
indicates how to install web services after the initial configuration is
complete.

 

Thanks,

Bob

 

 

 

 

 


RE: Muse/OSGi with multiple web service bundles?

Posted by "St Jacques, Robert" <Ro...@xerox.com>.
This turned out to be a result of the fact that Muse does not support
more than one application context.  I had defined a different
application context for each web service in the META-INF/manifest.mf in
each bundle.  Muse ignored any context other than the first that it
parsed, which caused confusion in the router later.

The MUSE-CONTEXT in the manifest must be set to the same value for all
services.

-----Original Message-----
From: St Jacques, Robert [mailto:Robert.StJacques@xerox.com] 
Sent: Wednesday, April 09, 2008 5:12 PM
To: muse-user@ws.apache.org
Subject: Muse/OSGi with multiple web service bundles?

Hi,

 

I'm running into problems trying to get Muse to run in an OSGi
configuration with web services in more than one bundle.  The idea is
that I would like to package web services into different bundles and
enable/disable them by adding/removing them from my Equinox install.

 

For example, if I have two services "Add" and "Subtract" I would like to
be able to run them independently of each other.  Currently I have two
separate bundles installed in my "plug-ins" directory.  Each has it's
own "OSGI-INF/muse.xml," and each works fine when run separately.  For
example, if I run just the "Add" service I can access it at
http://localhost:80/Add/services/Add <http://localhost/Add/services/Add>
and get the expected results.  Similarly, if I run just the Subtract
service I can point a client at
http://localhost:80/Subtract/services/Subtract
<http://localhost/Subtract/services/Subtract>  and, again I get the
expected results.

 

When I try to run both at the same time, however, the platform gets
confused.  Calls to "Add" will work, but calls to "Subtract" fail.  If I
try to access the service through
http://localhost:80/Subtract/services/Subtract
<http://localhost/Subtract/services/Subtract>  the WSDL I get the
following error message:

 

ID = 'DestinationUnreachable'] There is no resource available at the
given EPR: 

 

<wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing">

 
<wsa:Address>http://localhost:80/Subtract/services/Subtract</wsa:Address
>

</wsa:EndpointReference>

 

The existing EPRs hosted by this endpoint are: 

 

<wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing">

    <wsa:ReferenceParameters
xmlns:wsa="http://www.w3.org/2005/08/addressing"/>

    <wsa:Address>http://localhost/Add/services/Subtract</wsa:Address>

</wsa:EndpointReference>

 

So it's getting stuck on the "Add" context I setup in the Add service
bundle.  I then modified my client to point at
".../Add/services/Subtract" and got the following error on the client:

 

Document root element is missing.

 

With no errors on the server.  In fact, the muse logs show incoming SOAP
packets, but nothing else (not even an error log).

 

It seems like Muse is getting confused because of the two different
"muse.xml" configuration files, and it definitely seems to be getting
stuck on the first one it reads, which makes sense, but I'm stumped as
to how to configure muse to load the services separately.

 

Is there any way to dynamically add (and remove) web services to Muse at
runtime?  Is there any documentation to which someone can point me?  I
have read through the tutorial and the parts of the reference manual
that mention the muse.xml, but I haven't found anything there (yet) that
indicates how to install web services after the initial configuration is
complete.

 

Thanks,

Bob

 

 

 

 

 


---------------------------------------------------------------------
To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
For additional commands, e-mail: muse-user-help@ws.apache.org