#java #spring-boot #docker #soap #wsdl
#java #spring-boot #docker #soap #wsdl
Вопрос:
Я настраиваю службу SOAP с помощью spring-boot и запускаю ее в контейнере 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 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
Приветствуется любая помощь.
Ответ №1:
Если кто-то хочет знать, проблема заключалась в том, что библиотека wsdl4j была настроена только на compileOnly и путем изменения ее для компиляции библиотека была представлена в финальном jar.
Для получения дополнительной информации посетитеhttps://community.liferay.com/blogs/-/blogs/gradle-compile-vs-compileonly-vs-compileinclude