我正在使用 spring-boot 设置 SOAP 服务,并在 docker 容器中运行它。当我单独运行jar时,一切正常,但是当我尝试在docker容器中运行它时,它无法初始化并抛出以下错误:Failed to instantiate [org.springframework.ws.wsdl.wsdl11.Wsdl11Definition]: Factory method 'defaultWsdl11Definition' threw exception; nested exception is java.lang.NoClassDefFoundError: javax/wsdl/extensions/ExtensibilityElement我已经尝试了不同的镜像,还创建了一个基本的docker镜像,并手动安装oracle jdk。您可以在此处找到确切的代码并自己尝试。要运行应用,请执行以下操作:gradle buildjava -jar build/libs/service-0.0.1-SNAPSHOT.jar要创建 docker 映像,请执行以下操作:docker build -t soap:service --build-arg JAR_FILE=./build/libs/service-0.0.1-SNAPSHOT.jar .运行 Docker 映像:docker run soap:service任何帮助是值得赞赏的。
1 回答

阿晨1998
TA贡献2037条经验 获得超6个赞
如果有人想知道,问题是 wsdl4j 库被设置为在 compileOnly 上,并且通过更改它来编译库,该库呈现在最终的 jar 上。
有关更多信息,请访问 https://community.liferay.com/blogs/-/blogs/gradle-compile-vs-compileonly-vs-compileinclude
添加回答
举报
0/150
提交
取消