Java Wildfly忽略WEB-INF/lib中的库

Java Wildfly忽略WEB-INF/lib中的库,java,maven,wildfly,Java,Maven,Wildfly,我有两台Ubuntu 16.04.5 LTS GNU/Linux 4.4.0-119通用x86_64和Java 1.8.0_171机器,运行Wildfly 13.0.0.Final 我的web应用程序的pom.xml中有以下Maven依赖项: <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <ve

我有两台Ubuntu 16.04.5 LTS GNU/Linux 4.4.0-119通用x86_64和Java 1.8.0_171机器,运行Wildfly 13.0.0.Final

我的web应用程序的pom.xml中有以下Maven依赖项:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>25.0-jre</version>
</dependency>
在第一台服务器上运行web应用程序时,它抱怨缺少一个方法:

java.lang.NoSuchMethodError: com.google.common.collect.Sets$SetView.iterator()Lcom/google/common/collect/UnmodifiableIterator;
at org.reflections.Reflections.expandSuperTypes(Reflections.java:380)
at org.reflections.Reflections.<init>(Reflections.java:126)
at org.reflections.Reflections.<init>(Reflections.java:168)
at org.reflections.Reflections.<init>(Reflections.java:141)
...
奇怪的是,在第二台服务器上,它以相同的配置平稳运行

以下是WEB-INF/lib目录中所有JAR的列表:

激活-1.1.jarflut-1.3.0.gg2.jariron-resizeable-behavior-2.1.jarnd4j-api-0.9.1.jarrutch-1.2.1.jarvizcomponent-2.0.jaranimal-sniffer-annotations-1.14.jarfont-roboto-1.1.0.jariron-scroll-target-behavior-2.1.1.1.1.jarnd4j-base64-0.9.1.1.jarpaper-behaviors-2.1.1.jarwebcomponents-helper-0.0.0.0.0.0.0.jarapp-someapp-layout-2.0.4.0.jar-4.0atable-behavior-2.1.0.jarnd4j-buffer-0.9.1.jarpaper-icon-button-2.1.0.jarwebcomponentsjs-1.1.0.jarapp-layout-addon-0.9.22.jarfreemarker-2.3.23.jaritextpdf-5.5.12.jarnd4j-common-0.9.1.1.jarpaper-ripper-2.1.1.1.1.1.1.1.jarwebsocket-api-9.4.8.v20171121.jaratmos-runtime-2.4.24.24.va1.1.1.jargentyref-1.1.1.1.1.2.jradin-1.1.1.1.1.1.1.1.1.1.1.1.1.1.1。jarpaper-styles-2.1.0.jarwebsocket-client-9.4.8.v20171121.jarautocomplete-0.2.2.jargeojson-jackson-1.2.jarjackson-0.9.1.jarnd4j-jackson-0.9.1.jarpolymer-2.5.0.jarwebsocket-common-9.4.8.v20171121.jarbase64-2.3.9.9.jargoogleanalyticstracker-2.1.0.0.jarjackson-annotations-2.9.0.0.9.0.1-native-0.1-android-4.0.0.2.jarxalan-Final.24.1.Jand4J-Nati-0.9.9.1.1.1.Jand4.1.1.1.1.1.1.1.1.1.1-1.1-1.9.9.1.1-android-1.9.1.1.1.1.1.1.1.1.1.1.1.1.1.1-1-1.1-1-1-android-1-1-8.9.9.1.1-android-1-1-android-1-1-1-android-6.9.9.1.1.9.1.1.1.1.1-6.1.1.1.1.1-1-android-5-6.1.1.1.1.1.1-6.1.1-6.1.1-7-5-6.1.1.1.1.1-6.1.1-7-6.1.1.1.1.1-7-3.3.3.jarnd4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.3.3.10.10.10.1.1.1.1.1.1.1.1.1.1-1.1.1-1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1-1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1本机-0.9.1-窗口4.3.10.10.3.3.3.3.3.3.3.3.1.3.3.3.3.3.3.3.3.3.3.3.3.10.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1-1.1.1-1.1.1.1.10-1.1.10-1.1.1.1.1.10-1.1-1.1.1.1.1.1.1.10-1.1.1.1.1.1.10-1.1.1.1.1.1.10-1.0-1.0-1.1.1.1.1.1.1.1.1.1.1.10.10.10.0-1.1.0-1.1.10-1.4.0.jarxchange-cryp1.10.0.0-1-1-1.1-1.3-1.1-1.1-1.3-windows-x86.7-1.3-1.3-windows-x86.7.7.1.0.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1-1.1-1-1.3-1-1-1-1-7-1-1-1-3-3-3-windows-windows-X8.3-X8.6.7.7-X8.1.7.7.7.7.7.7-7-7-8-7-7-7.3-7-7-7-7-7-7-1-7-7-7-7-7-1-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-1.7.jarhd1.2.2.2.0.0.1.1.1.1.1.1.1.2.2.1.0.0.0.0.1.0.0.1.0.0.1.1.1.1.1.2.2.2.1.2.2.2.1.2.2.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.2.1.2.1.1.1.2.1.1.2.1.1.1.1.2.2.1.1.1.1.1.1.2.1.2.1.1.1.1.1.1.1.1.1.1.1.2.2.2.1.1.1.1.1.1.1.2.2.2.2.2.2.2.2.1.1.1.1.1.1.1-1.3.3.10.1.1.1.3.1.3.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.3.1.3.1.3.1.3.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.1.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9 1.jarhttp4.5.5.4.4.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.1.1.1.1.1.1.1.4.4.4.4.4.4.5.5.5.4.5.4.4.4.4.4.7.7.7.7.7.7.0.0.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.2-2-2-2-2-2-2-2-2-2-2-1-1-1-1-1-1-1-1-1-1-3-3-3-1.3.3-4.3-3-4.3-3-3 1.3-android-x86.jarta4j-core-1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.2.9.2.2.2.2.2.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.JarJorjoda-时间-2.2.2.2.2.9.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.7.Jaopen公开XML XML XML XML XML XML-JaopenXML-1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.JaopenXML-Ja公开公开公开0.9.1.jariron-checked-element-behavior-2.1.1.jarjson-20170516.jaropenblas-0.2.19-1.3-linux-x86.jarvaadin-context-menu-2.0.0.jarxpp3_-min-1.1.4c.jardeeplearning4j-modelmimport-0.9.1.jariron-flex-layout-2.0.3.jarjsoup-1.11.2.2.19-1.3-linux-x86_-64.jarvaadin-push-8.4.5.4.xstream-1.jarning1.jar-1.0.1.1.jarningiron-1.0.1.1.1.jar-1.1.1.1.1.1.1.1.0.1.1.1.1.1.1.1.3.jarjsr305-2.0.1.jaropenblas-0.2.19-1.3-macosx-x86_64.jarvaadin-sass-compiler-0.9.13.jarxz-1.6.jardeeplearning4j-ui-components-0.9.1.jariron-icon-2.1.0.jarlombok-1.16.jaropenblas-0.2.19-1.3-windows-x86.jarvaa-server-8.4.5.jaremoji-java-4.0.0.0.0.jariron-icon-1.jarlombok-1.jar-1.0.jar-1.1.jar-1.1.1.jar-openblas-1.1.1.jar
2.4.5.7.Jar错误(1)表示“容易”的倾向倾向于(2.1.1.1.3.3.1.3.3.1.1.3.1.3.1.3.3.1.3.3.3.3.3.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.3.1.3.3.3.1.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.Ja铁铁铁铁铁铁铁铁铁-IIIIconconconconconconfefefefefefefefefefefefe铸铁-------------------IC1.3.9-1.jariron-meta-2.1.1.jarmorphia-1.3.2.jaropencsv-2.3.jarviritin-2.1.jarWindfly带来番石榴,因为它有自己的依赖性:

在最新的Windfly版本中,它是番石榴18

该类仅在版本20后可用

我最好的猜测是,这两个版本都可以在你的应用程序的类路径中使用,你的应用程序最终使用哪个版本是巧合。 因此,为了保持依赖关系的分离,您应该定义一个JBoss模块,并在其中明确定义依赖关系。
如何做到这一点可能超出了本答案的范围,但可以找到。

您是否在容器/appserver上部署了相同的EAR或WAR?部署期间没有错误?这是运行时错误吗?是的,我将相同的ROOT.war部署到两台服务器,并复制到部署中。部署期间没有错误。这是一个运行时异常,在执行代码时会发生,这依赖于Guava。可能容器在$serverpath/lib上包含另一个Guava版本,您检查了吗?是的,我检查了-wildfly的模块dir中有Guava 25.0-jre。但是这个版本和我用的是一样的。这怎么可能,两台服务器的反应不同呢?都是JEE实现,但实现方式可能不同,因为您使用的服务器不同。你有没有试着把这个guava 25.0-jre放在你的项目中并检查会发生什么?没有,已安装版本的wildfly 13具有Guava 25依赖项…/wildfly/modules/system/layers/base/com/google/Guava/main/Guava-25.0-jre.jar wildfly实现中的所有非java ee类对应用程序都不可见,除非使用XML配置文件或module manifest.mf文件中的依赖项元素专门启用。