Glassfish java.lang.NoClassDefFoundError在将webapp用作依赖项时出错

Glassfish java.lang.NoClassDefFoundError在将webapp用作依赖项时出错,java,glassfish,classpath,Java,Glassfish,Classpath,我正在尝试在不重新部署webapp存档的情况下扩展webapp功能。应用程序在GlassFish3下运行 基本上,我所做的是: webapp.war包含一些属于webapplication的part.jar。它包含一些类SomeClass。Webapp允许一些自定义配置,其中可以使用Class.forName动态加载SomeClass的后代 我从SomeClass派生了ExtensionClass(ExtensionClass-extensionsomeclass),用part.jar编译了它,

我正在尝试在不重新部署webapp存档的情况下扩展webapp功能。应用程序在GlassFish3下运行

基本上,我所做的是:

webapp.war
包含一些属于webapplication的
part.jar
。它包含一些类
SomeClass
。Webapp允许一些自定义配置,其中可以使用
Class.forName
动态加载
SomeClass
的后代

我从
SomeClass
派生了
ExtensionClass
ExtensionClass-extensionsomeclass
),用
part.jar
编译了它,得到了一些
extension.jar

我试图将
extension.jar
放入
domain/lib
domain/lib/ext
。但加载
ExtensionClass
时,应用程序会显示
java.lang.NoClassDefFoundError:SomeClass
(注意,它是关于父类的)。似乎加载库的classloader找不到webapp中包含的基类

目标:我想使用依赖项扩展应用程序,但不需要重建

问题:在这种情况下可以做什么

编辑
如果我把我的
扩展名.jar
放入
应用程序/mywebapp/WEB-INF/libs
中,它显然会工作,就像我把它放入
webapp.war
本身一样。但是它非常脏,我想解决它,不做这些脏事,也不碰
webapp.war

你看到了吗?要从域/lib加载类,您需要获得
Common
classloader或其一些后代。我不确定应该从哪里获得它的try current thead classloader
Thread.currentThread().getContextClassLoader()
。还是我误解了你的问题?我认为您只需要在运行时从domain/lib加载并实例化某个类,而不仅仅是某个类。有些类来自domain/lib,但那个类是从webapp本身扩展的。