У меня большие трудности с попыткой использовать относительный адрес публикации в моей конфигурации конечной точки веб-службы CXF.
У меня есть простой проект JAX-WS, ориентированный на Java, со следующими файлами конфигурации:
applicationContent-cxf.xml:
...
endpointName="sayHello"
address="HelloWorldService"/>
web.xml:
contextConfigLocation
WEB-INF/applicationContext.xml
WEB-INF/applicationContext-cxf.xml
org.springframework.web.context.ContextLoaderListener
HelloWorldServlet
Hello World Servlet
org.apache.cxf.transport.servlet.CXFServlet
HelloWorldServlet
/services/*
Согласно http: // cxf. apache.org/docs/servlet-transport.html, кажется, я должен иметь возможность указать адрес публикации HelloWorldService
, и URL-адрес службы будет преобразован в (например) http : // localhost: 8080 / services / HelloWorldService . Но когда я пытаюсь перейти на http: // localhost: 8080 / services / HelloWorldService? Wsdl , я получаю 404. Если я изменю адрес публикации в конечной точке jaxws на абсолютный URL http: // localhost: 8080 / services / HelloWorldService
Я могу получить доступ к wsdl.
Я хочу указать относительный адрес конечной точки, если это возможно. Я новичок в использовании CXF (и написании веб-сервисов), поэтому приветствую любую помощь!
ОБНОВЛЕНИЕ 1:
Обратите внимание, что я развертываю свой веб-сервис на Tomcat 7. Я не знаю, что его регистрирует. , но в одной из строк моего журнала запуска указано Установка адреса публикации сервера как HelloWorldService
. Если кому-то понадобится дополнительная информация, чтобы помочь мне, дайте мне знать.
ОБНОВЛЕНИЕ 2:
Похоже, что CXF определяет, «используется» ли CXFServlet, и использует встроенный экземпляр причала, если это не так. http://cxf.apache.org/docs/xfire-migration-guide.html#XFireMigrationGuide-HTTPandServletSetup . Итак, по какой-то причине CXF использует встроенный экземпляр причала вместо моего сервлета. Однако я не знаю, какая дополнительная конфигурация мне нужна, кроме HelloWorldServlet в моем web.xml, и документация CXF мне больше не помогает.