我正在尝试扩展webapp功能而不重新部署webapp存档。应用程序在Glassfish 3下运行。
基本上,我所做的是以下内容:
webapp.war
包含一些part.jar
,它是webapplication的一部分。它包含一些类SomeClass
。 Webapp允许一些自定义配置,其中SomeClass
的后代可以使用Class.forName
动态加载。
我从ExtensionClass
(SomeClass
)派生了ExtensionClass extends SomeClass
,使用part.jar
对其进行了编译,得到了一些extension.jar
。
我尝试将extension.jar
放入domain/lib
和domain/lib/ext
。但是在加载ExtensionClass
时,app会说java.lang.NoClassDefFoundError: SomeClass
(注意它说的是父类)。似乎加载库的类加载器无法找到包含在webapp中的基类。
目标:我想使用依赖项来扩展应用,但不需要重建。
问题:在这种情况下可以做些什么?
修改
如果我只是将extension.jar
放入applications/mywebapp/WEB-INF/libs
,它显然有效,就像我将其放入webapp.war
本身一样。但它非常脏,我想解决它而不会做这种肮脏而不触及webapp.war
。