0

我的第一篇文章,所以放轻松。

我正在寻找有关组织和引用第三方 jar 以在我的 j2ee Web 应用程序中使用的建议。我需要整理和引用的 jars 是 JWSDP-2.0 JAXB api jars。

我正在使用 Eclipse 和 Tomcat 5.5。我的 Web 应用程序与 Web 服务交换 XML,因此需要使用 JWSDP-2.0 中的 JAXB api 进行一些 XML 编组和解组。

我已经下载了 JWSDP-2.0 并安装到我的电脑上。我现在正在尝试找出最佳方法,使其中包含的必要 jar 文件可用于我机器上的 eclipse 中的 Web 应用程序,以及我机器上的 Tomcat 以及最终的测试和生产服务器上的 Web 应用程序。

我开始只是将 .jar 文件复制到我项目的 WEB-INF/lib 文件夹中。这意味着当部署到 Tomcat 时,jar 文件现在将在 .war 中导出。但是,我不喜欢这样,因为 jar 文件来自 JWSDP-2.0 中的几个不同的库,像这样复制它们意味着它们只是被扔在一起,而不是像 JAXB、JAXP、SAAJ 等那样很好地分开。还有,有一些名称冲突,例如,我的 Web 应用程序已经包含旧的 xml 解析 jar,例如 xalan.jar,它们已经被 Web 应用程序的不同部分使用。

然后我删除了所有这些 jar,并在 eclipse 中创建了一系列用户库,例如“jwsdp-2.0_jaxp”、“jwsdp-2.0_jaxb”,它们从 WSDP-2.0 安装中的位置引用这些 jar。就在 Eclipse 中编译我的 Web 应用程序而言,这工作得很好,但是我现在需要使这些 jar 可用于 Tomcat,而且我在最好的方法上有点卡在那里。

所以,在基本层面上,我的问题是如何获取 Tomcat 中引用的 jar 文件?

更一般地说,我正在寻找一些关于在项目中引用和包含第三方 jar 的最佳实践的建议,以期顺利部署到服务器。

如果有人可以推荐任何关于代码组织和部署的好文章/书籍/资源,这将帮助我学习这种场景的最佳实践,那就太好了

提前喝彩。

4

2 回答 2

3

这里有几点:

  • 如果您的 WAR 文件中有 JARS 冲突,那么您就是在自找麻烦。您应该整理出您的应用程序需要哪些,并丢弃其余的。否则,您将面临 tomcat 加载“错误”类的风险。
  • JWSDP 2.0非常旧,并且包含一个旧的、预发布的 JAXB 版本。我强烈建议使用最新的 JAXB JAR(来自http://jaxb.dev.java.net),因为早期访问 JAXB2 遇到了许多问题。
  • 虽然您的 WEB-INF/lib 拥有结构化的目录布局可能会很好,但这并不重要,因为这是您的构建工件。只要您从结构化存储库中获取 JAR,您就不需要在 WAR 中保留该结构。Tomcat不在乎。通过将它们全部放在一个目录中会出现名称冲突这一事实是一个警告,您需要对这些冲突进行排序。
于 2009-06-03T10:55:52.440 回答
1

组织依赖项的最佳做法是使用 maven 构建 eclipse 项目和 war for tomcat 并让他下载所需的所有依赖项:

https://jaxb.dev.java.net/jaxb-maven2-plugin/

于 2009-06-03T10:31:29.293 回答