geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott Anderson <portlet...@gmail.com>
Subject redeploying imported configuration results in ClassNotFoundException
Date Thu, 16 Feb 2006 09:29:37 GMT
Given...

config-A which has no parent configuration
config-B and config-C which both have config-A as their parent
web-app which has config-C as its parent and imports config-B
config-B defines a GBean that is used by the web-app

When I do the following...

redeploy config-B which also stops web-app
restart the web-app

I find that...

The class loader used to load the GBean from config-B is no longer among the
ancestors of the class loader used to load the servlet in the web-app.

Specifically...

There is a MultiParentClassLoader with id = config-B among both the ancestor
class loaders of the GBean from config-B and among the ancestor class
loaders of the servlet in the web-app. However the class loaders with that
id are different objects so I get a ClassNotFoundException when the servlet
attempts to use an object supplied by the GBean. If I restart geronimo
everything is working again.

Has anyone also run into this problem or have some insights on how to
correct what is going wrong and can point me towards a fix? I'm assuming
that this is not the correct behavior. I am using the 1.0 codebase.

BTW, it helped me to isolate this problem by changing the toString method of
MultiParentClassLoader to...

return "[" + super.toString() + " id=" + id + "]";

- Scott

Mime
View raw message