I did try defining with the explicit classpath (as below). I also tried setting the "self-first" and "parent-first" settings within separate tests and still the same result.

I want the classes to be loaded from jars within the SU, but it seems as though they are only loading when they are in the ServiceMix/lib/optional directory.

Any other suggestions?

Thanks,
Gordon Dickens

Guillaume Nodet wrote:
Have you tried without defining the <classpath/> element explicitely ?
The component will create the correct classloader by defaut.
Anyway, if this does not work, the problem may be completely different.
It depends on where the classes are loaded from: are they loaded from the
SU or from the component or even container for some reason ?


On Jan 18, 2008 9:58 PM, Gordon Dickens <[EMAIL PROTECTED]> wrote:

Hello,

In an effort to minimize the clutter of our ServiceMix (v3.2.1)
lib/optional directory I would like to bundle dependent jars within
their corresponding service units.

The problem I am running into is with a service unit that requires
several cryptix jars for decryption.

The jar definitions are defined within the SUs pom.xml as
       <dependency>
           <groupId>cryptix</groupId>
           <artifactId>cryptix-jce-api</artifactId>
           <version>1.0</version>
       </dependency>
       <dependency>
           <groupId>cryptix</groupId>
           <artifactId>certpath-api-compat</artifactId>
           <version>1.0</version>
       </dependency>
       <dependency>
           <groupId>cryptix</groupId>
           <artifactId>cryptix-jce-provider</artifactId>
           <version>1.0</version>
       </dependency>
       <dependency>
           <groupId>cryptix</groupId>
           <artifactId>cryptix-message-api</artifactId>
           <version>1.0</version>
       </dependency>
       <dependency>
           <groupId>cryptix</groupId>
           <artifactId>cryptix-openpgp-provider</artifactId>
           <version>1.0</version>
       </dependency>
       <dependency>
           <groupId>cryptix</groupId>
           <artifactId>cryptix-pki-api</artifactId>
           <version>1.0</version>
       </dependency>


The SUs xbean.xml contains

   <classpath>
       <location>lib/certpath-api-compat-1.0.jar</location>
       <location>lib/cryptix-jce-api-1.0.jar</location>
       <location>lib/cryptix-jce-provider-1.0.jar</location>
       <location>lib/cryptix-message-api-1.0.jar</location>
       <location>lib/cryptix-openpgp-provider-1.0.jar</location>
       <location>lib/cryptix-pki-api-1.0.jar</location>
       <location>.</location>
   </classpath>

These jars are being included in the deployment jar and in the
servicemix/data directory I see the service unit expanded with the jars
in the SUs exploded lib directory.

The page http://servicemix.apache.org/classloaders.html leads me to
believe that I am doing this correctly.

When this service runs I get java.lang.NoClassDefFoundError:
cryptix/message/MessageException.

Can anyone shed light on this issue?

Thanks in advance,
Gordon Dickens




--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
.


Reply via email to