wildfly可引导jar不在docker容器中运行

yb3bgrhw  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(406)

我正在测试wildfly启动罐。做了一个简单的项目,用“java-jar myapp bootable.jar”开始就可以了。它基本上只包含index.html。很简单。
下一步,是围绕它构建一个docker图像。但这不管用。
这是码头文件

  1. FROM maven:3.6.3-adoptopenjdk-15 as build
  2. COPY src /usr/src/app/src
  3. COPY pom.xml /usr/src/app
  4. RUN mvn -f /usr/src/app/pom.xml clean package
  5. FROM adoptopenjdk:latest
  6. COPY --from=build /usr/src/app/target/myapp-bootable.jar /opt/myapp-bootable.jar
  7. WORKDIR /opt
  8. CMD ["java", "-jar","myapp-bootable.jar"]

我在我的mac上使用相同的jdk,它确实可以工作。我真的不明白为什么我会收到这个错误消息:

  1. Exception in thread "main" java.lang.Exception: org.jboss.modules.ModuleLoadException: Error loading module from /tmp/wildfly-bootable-server4167855925626750470/modules/system/layers/base/org/apache/xerces/main/module.xml
  2. at org.wildfly.core.jar.boot.Main.runBootableJar(Main.java:162)
  3. at org.wildfly.core.jar.boot.Main.main(Main.java:141)
  4. Caused by: org.jboss.modules.ModuleLoadException: Error loading module from /tmp/wildfly-bootable-server4167855925626750470/modules/system/layers/base/org/apache/xerces/main/module.xml
  5. at org.jboss.modules.xml.ModuleXmlParser.parseModuleXml(ModuleXmlParser.java:337)
  6. at org.jboss.modules.xml.ModuleXmlParser.parseModuleXml(ModuleXmlParser.java:293)
  7. at org.jboss.modules.xml.ModuleXmlParser.parseModuleXml(ModuleXmlParser.java:254)
  8. at org.jboss.modules.LocalModuleFinder.parseModuleXmlFile(LocalModuleFinder.java:250)
  9. at org.jboss.modules.LocalModuleFinder.lambda$findModule$1(LocalModuleFinder.java:195)
  10. at java.base/java.security.AccessController.doPrivileged(AccessController.java:691)
  11. at org.jboss.modules.LocalModuleFinder.findModule(LocalModuleFinder.java:195)
  12. at org.jboss.modules.ModuleLoader.findModule0(ModuleLoader.java:696)
  13. at org.jboss.modules.ModuleLoader.findModule(ModuleLoader.java:689)
  14. at org.jboss.modules.ModuleLoader.loadModuleLocal(ModuleLoader.java:499)
  15. at org.jboss.modules.DelegatingModuleLoader.preloadModule(DelegatingModuleLoader.java:57)
  16. at org.jboss.modules.Module.addPaths(Module.java:1252)
  17. at org.jboss.modules.Module.link(Module.java:1622)
  18. at org.jboss.modules.Module.relinkIfNecessary(Module.java:1650)
  19. at org.jboss.modules.ModuleLoader.loadModule(ModuleLoader.java:299)
  20. at org.wildfly.core.jar.boot.Main.runBootableJar(Main.java:160)
  21. ... 1 more
  22. Caused by: org.jboss.modules.xml.XmlPullParserException: Failed to resolve artifact 'xerces:xercesImpl:2.12.0.SP03' (position: END_TAG seen ...esources>\n <artifact name="xerces:xercesImpl:2.12.0.SP03"/>... @26:57)
  23. at org.jboss.modules.xml.ModuleXmlParser.parseArtifact(ModuleXmlParser.java:1050)
  24. at org.jboss.modules.xml.ModuleXmlParser.parseResources(ModuleXmlParser.java:937)
  25. at org.jboss.modules.xml.ModuleXmlParser.parseModuleContents(ModuleXmlParser.java:697)
  26. at org.jboss.modules.xml.ModuleXmlParser.parseDocument(ModuleXmlParser.java:469)
  27. at org.jboss.modules.xml.ModuleXmlParser.parseModuleXml(ModuleXmlParser.java:335)
  28. ... 16 more

一切都应该在jar里。如果缺少某些东西,“myapp bootable.jar”应该不起作用,但它确实起作用。我甚至进到容器里自己打命令-不走运。也许是类加载器?

lvmkulzt

lvmkulzt1#

我成功地构建了docker映像并运行了它。从您的错误看来,您已经构建了一个“slim服务器”(从maven本地缓存解析jboss模块工件)。请检查pom.xml文件,看看是否设置了jboss maven dist和/或jboss maven repo plugin选项。如果是这样,那么删除这些选项并重建jar。这应该管用。谢谢你。jf公司

相关问题