What determine which jars are searched for loading
classes?
I have two jars:
server-api.jar and server-impl.jar
The api jar contains all the interfaces that defines
the services and impl contains the implementations.
I tried to define my own service so I wrote a
a.b.Service interface which ends up in the
server-api.jar and a corresponding a.b.ServiceImpl in
server-impl.jar
The implementation is written like this:
/**
* @avalon.component version="0.1" name="Service"
lifestyle="singleton"
* @avalon.service type="a.b.Service"
*
* @version 0.1
*/
public class ServiceImpl
extends AbstractLogEnabled
implements Initializable, Configurable, Service
{ ... }
while the interface is just
**
* @version 0.1
*/
public interface Service
{ ... }
I've also got the following line in the block.xml:
<component name="Service" class="a.b.ServiceImpl"
activation="lazy"/>
and
<classloader>
...
<repository>
<resource id="xxx:server-api"
version="1.2"/>
...
However, when I try to use a component that tries to
load this service, I get the exception:
Exception:
org.apache.avalon.composition.model.ModelException
Message: Component type [a.b.ServiceImpl] contains a
reference to the class [a/b/Service] which does not
exist in the classloader.
---- stack trace
---------------------------------------------------------------
org.apache.avalon.composition.model.ModelException:
Component type [a.b.ServiceImpl] contains a reference
to the class [a/b/Service] which does not exist in the
classloader.
org.apache.avalon.composition.model.impl.Scanner.getComponentClass(Scanner.java:538)
....
Why is that? All sorts of other services are contained
in those jar files and it seems to be able to load
those. What else do I have to do to enable it to find
my file?
Thank you for your help.
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]