我有一个 EAR 文件,其中包含两个 war 和多个 jar。我正在使用 maven-ear-plugin 生成此文件。
所有 jar 都添加到 lib 中。本地 jar 很少,我将它们直接添加到 EAR 文件下。我有 2 个名称不同但包含相同包的本地 jar,例如 abc.jar 和 xyz.jar
当我在服务器上部署此文件时,出现以下错误:
"{\"WFLYCTL0080: Failed services\" => {\"jboss.mbean.service.publish:service=StreamReceiverStartup.start\" => \"org.jboss.msc.service.StartException in service jboss.mbean.service.publish:service=StreamReceiverStartup.start: WFLYSAR0001: Failed to execute legacy service start() method
Caused by: java.lang.reflect.InvocationTargetException
Caused by: java.lang.NoClassDefFoundError: <package_name>/<class_file>
Caused by: java.lang.ClassNotFoundException: <class_file> from [Module \\\"deployment.<ear_file_name>.ear.<jar_name>.jar:main\\\" from Service Module Loader]\"}}"
它正在尝试从 abc.jar 而不是 xyz.jar 进行检测,其中包含 .
如何解决这个冲突?我尝试删除其中一个 jar 文件。它会导致相同的异常,但类文件不同,因此我不能丢弃这些 jar 中的任何一个。
通过从 application.xml 中删除 jar 可以解决此问题
我是一名优秀的程序员,十分优秀!