java - 引用 JAXB jar - 最佳实践

标签 java jaxb code-organization

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

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

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

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

我一开始只是将 .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 的最佳实践的建议,以顺利部署到服务器。

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

提前干杯。

最佳答案

这里有几点:

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

关于java - 引用 JAXB jar - 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/944031/

相关文章:

java - JAXB、抽象类和多模块项目

Javascript 命名空间和 OO 组织

java - 缓存文件服务器

java - 如何确定正确的编码?

java - 使用 EclipseLink MOXy 解码时忽略 DTD

c - 为任务列表程序设计函数的参数和返回值

JavaScript 代码组织建议/代码审查

java - 单元测试的依赖注入(inject)与管理自己变量的类

java - 多线程循环同步ArrayList

inheritance - EclipseLink MOXy : Superclass fields are not set when unmarshaling