Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 参考JAXB jars-最佳实践_Java_Jaxb_Code Organization - Fatal编程技术网

Java 参考JAXB jars-最佳实践

Java 参考JAXB jars-最佳实践,java,jaxb,code-organization,Java,Jaxb,Code Organization,我的第一篇文章,所以对我放轻松 我正在寻找关于组织和引用第三方JAR以在我的j2ee web应用程序中使用的建议。我需要组织和引用的JAR是JWSDP-2.0 JAXB api JAR 我正在使用Eclipse和Tomcat5.5。我的web应用程序与web服务交换XML,因此需要使用JWSDP-2.0中的JAXB api进行一些XML编组和解编组 我已经下载了JWSDP-2.0并安装到了我的PC上。我现在正试图找出最好的方法,使其中包含的必要jar文件在我的机器上的eclipse中以及在我的机

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

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

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

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

我开始只是将.jar文件复制到项目的WEB-INF/lib文件夹中。这意味着jar文件现在将在部署到Tomcat时导出到.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 instal中的位置引用JAR。就在eclipse中编译我的web应用而言,这很好,但我现在需要让Tomcat可以使用这些JAR,我有点被困在最好的方法上

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

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

如果有人能推荐一些关于代码组织和部署的好文章/书籍/参考资料,这将有助于我学习此类场景的最佳实践,那将是非常棒的


提前干杯。

组织依赖关系的最佳实践是使用maven为tomcat构建eclipse项目和war,并让他下载所需的所有依赖关系:


组织依赖关系的最佳实践是使用maven为tomcat构建eclipse项目和war,并让他下载所需的所有依赖关系:

这里有几点:

  • 如果你的战争档案中有碰撞的罐子,那么你是在自找麻烦。您应该找出应用程序需要哪些,然后丢弃其余的。否则,您将面临tomcat加载“错误”类的风险
  • JWSDP2.0非常古老,包含一个旧的JAXB预发布版本。我强烈建议使用最新的JAXB JAR(从),因为早期访问JAXB2遇到了许多问题
  • 虽然您的WEB-INF/lib有一个结构化的目录布局可能很好,但这并不重要,因为这是您的构建工件。只要您从结构化存储库中获取jar,您就不必在战争中保留该结构。雄猫不在乎。如果将名称冲突全部放在一个目录中,就会出现名称冲突,这是一个警告,需要对这些冲突进行排序
    • 这里有几点:

      • 如果你的战争档案中有碰撞的罐子,那么你是在自找麻烦。您应该找出应用程序需要哪些,然后丢弃其余的。否则,您将面临tomcat加载“错误”类的风险
      • JWSDP2.0非常古老,包含一个旧的JAXB预发布版本。我强烈建议使用最新的JAXB JAR(从),因为早期访问JAXB2遇到了许多问题
      • 虽然您的WEB-INF/lib有一个结构化的目录布局可能很好,但这并不重要,因为这是您的构建工件。只要您从结构化存储库中获取jar,您就不必在战争中保留该结构。雄猫不在乎。如果将名称冲突全部放在一个目录中,就会出现名称冲突,这是一个警告,需要对这些冲突进行排序