Spring docker 中的启动 SOAP 服务 运行 未找到 ExtensibilityElement class
Spring boot SOAP service running in docker doesn't find ExtensibilityElement class
我正在使用 spring-boot 和 运行 在 docker 容器中设置 SOAP 服务。
当我单独 运行 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。
您可以找到确切的代码here并自行尝试。
到 运行 应用:
gradle build
java -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
感谢任何帮助。
如果有人想知道,问题是 wsdl4j 库被设置为 compileOnly 并且通过更改它来编译库出现在最终的 jar 上。
有关详细信息,请访问 https://community.liferay.com/blogs/-/blogs/gradle-compile-vs-compileonly-vs-compileinclude
我正在使用 spring-boot 和 运行 在 docker 容器中设置 SOAP 服务。 当我单独 运行 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。
您可以找到确切的代码here并自行尝试。
到 运行 应用:
gradle build
java -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
感谢任何帮助。
如果有人想知道,问题是 wsdl4j 库被设置为 compileOnly 并且通过更改它来编译库出现在最终的 jar 上。
有关详细信息,请访问 https://community.liferay.com/blogs/-/blogs/gradle-compile-vs-compileonly-vs-compileinclude