有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

具有两个具有相同Java类和相同完全限定名的不同JAR

我正在将一个JAR文件部署到TomcatWEB-INF\lib文件夹中,web应用程序中Java代码的其他部分正在正确地使用这些JAR中引用的类或JavaBean

当我在另一台机器(UAT)上重复相同的步骤时,使用另一个类似的Tomcat服务器实例(在UAT上测试应用程序),我得到一个错误,指示该类在两个JAR文件中重复,但我不记得确切的错误。我查找了WEB-INF\lib文件夹,花了大量的精力找到罪犯JAR文件并将其从文件夹中删除,一切正常

奇怪的是,相同的部署在登台时重复(在生产部署之前进行验证),我没有得到错误,一切都很好,尽管存在另一个具有相同类和相同包名的JAR文件

问题:

  • 如果在多个JAR文件中有多个对同一Java类的引用,我们如何确认Tomcat服务器拾取了哪一个?我可以通过检查日志并使用调试语句搜索发送到日志的某些关键字来进行验证。但是,如何从Tomcat检查这一点

  • 如何搜索lib文件夹中的所有jar,以查找Java类或包的可能重复引用
    这里提供了答案:https://stackoverflow.com/a/1343026

  • 为什么在一个实例中抛出了重复类声明错误,而在另一个实例中,虽然应该抛出,但没有抛出该错误

  • 是否有一个配置来指示在多个JAR中是否存在重复的类声明,以按照某些条件解析引用?这样的配置在哪里

  • 使用新版本的类部署JAR文件的推荐做法是什么?复制/粘贴新JAR并替换现有文件是否简单

我感谢你的帮助。 塔瑞克


共 (0) 个答案