3

我的项目结构如下。服务器是 Glassfish 4。IDE - netbeans 7.4。项目 temp 由项目 a 使用。

EAR
 + lib/temp.jar
 + a.war

Temp.jar包含核心类。它们被战争使用。Temp.jar不从战争中导入任何文件,它必须对战争一无所知。但是,temp.jar有通过反射创建战争类实例的类(根据 xml 文件)。我明白了ClassNotFoundException。如何修复?是否可以修复或我的项目结构错误?

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

4

2 回答 2

3

我找到了答案。

如果我们将 jar 放入 ear/lib 文件夹,则可以访问其中的类,但它们无法访问 lib 之外的类(在这种情况下,无需在清单文件中添加任何内容)。

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

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

希望它会为某人节省很多时间。

于 2013-11-13T19:44:33.760 回答
2

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

这对我有用。

于 2014-04-23T16:05:10.567 回答