从ear / war in ear / lib / jar获取类会返回ClassNotFoundException

时间:2013-11-13 06:23:54

标签: java java-ee glassfish

我的项目结构如下。服务器是Glassfish 4. IDE - netbeans 7.4。项目临时用于项目a。

EAR
 + lib/temp.jar
 + a.war

Temp.jar包含核心类。他们被战争使用。 Temp.jar不会从战争中导入任何文件,它必须知道战争。但是,temp.jar具有通过反射创建war类实例的类(根据xml文件)。我得到ClassNotFoundException。怎么修好?是否有可能修复或我有错误的项目结构?

注意:我没有把temp.jar放在a.war中,因为可以有不同的war文件可以使用这个jar。

2 个答案:

答案 0 :(得分:3)

我找到了答案。

如果我们将jar放入ear / lib文件夹,那么可以访问其中的类,但是它们无法访问lib中的类(在这种情况下,不需要向清单文件中添加内容)。

如果我们把jar放在耳根或任何其他文件夹耳/ bum中,那么这些jar的类可以访问war类。

所以我得出结论,/ lib是单向的,任何其他都是双向的。

希望能节省很多时间。

答案 1 :(得分:2)

将jar文件添加到您的lib文件夹中。 更改MANIFEST.MF并将特定的jar路径添加到Bundle-ClassPath。

这对我有用。