3

假设您的应用程序仅包含一个 war 文件。我的理解是,我需要并且允许我提供的任何第三方库,我都会包含在我的战争中,在 WEB-INF/lib 中。

今天我遇到有人告诉我一些关于 JBoss 7 及其模块概念的细节,建议应用程序不应该提供任何第三方库......而是从应用程序服务器请求正确版本的库。

我仍然是那种喜欢提供完整包的人,没有其他用户必须确保的任何依赖项,它们是完整的。现在,长话短说......是否有“Java EE 标准”的答案,如何应对企业应用程序中的第三方库?

4

2 回答 2

2

根据Java EE 6 教程

文档根目录包含一个名为 WEB-INF 的子目录,其中可以包含以下文件和目录:

classes:包含服务器端类的目录:servlet、企业 bean 类文件、实用程序类和 JavaBeans 组件

tags:包含标签文件的目录,标签文件是标签库的实现

lib:包含 JAR 文件的目录,其中包含企业 bean,以及由服务器端类调用的库的 JAR 归档

部署描述符,例如 web.xml(Web 应用程序部署描述符)和 ejb-jar.xml(EJB 部署描述符)

所以 /WEB-INF/lib 是正确的。

于 2011-07-14T15:28:30.720 回答
0

“标准”答案取决于您的 Java EE 应用服务器是否支持 OSGi 或JSR-277标准。

JBOSS 版本 7确实支持 OSGi;早期版本可能不会。

所以这实际上是两个答案:一个用于 pre-OSGi 服务器(“将 JAR 放入 WEB-INF/lib 中以供您的应用程序或服务器 /lib”)和 post-OSGi(“使用 OSGi”)。

于 2011-07-14T15:23:50.550 回答