Итак, я рассмотрел пример приложения весенней загрузки, которое предоставляет веб-сервис SOAP с использованием Apache CXF с пакетом WAR, развернутым на сервере Tomcat.Тем не менее, все, что я могу найти, - это учебники, в которых используется упаковка JAR со встроенным Tomcat.
Я следую этому учебнику , в котором используется этот пример кода.Когда я компилирую код как есть и запускаю его, он работает, и я могу видеть определения WSDL в URL-адресе / services.В pom, если я изменю упаковку с JAR на WAR и затем разверну эту войну в моем экземпляре tomcat, тот же URL-адрес вернет 404.
<groupId>com.opencodez</groupId>
<artifactId>apache-cxf-ws</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging> <!-- used to be jar -->
Я также попытался сделать основной класс расширенным из SpringBootServletInitializer.например так:
@SpringBootApplication
@ImportResource({ "classpath:webservice-definition-beans.xml" })
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
В примере кода используется пружинная загрузка 1.5.10.RELEASE.Spring-boot-starter-web тянет кота 8.5.27.Мой работающий экземпляр - версия 8.5.35, поэтому я не думаю, что это проблема зависимой версии.Моя установка tomcat также является базовой установкой с конфигурацией по умолчанию.
Мне интересно, может, у моего кота отсутствует зависимость jax-ws в папке / lib?Или, может быть, мне нужны дополнительные настройки в файле server.xml?Любая помощь будет принята с благодарностью!