Веб-сервисы на основе WSDL в Wildfly

Я пытаюсь создать простой веб-сервис на основе WSDL для развертывания в Wildfly с использованием Apache CXF. Я попробовал стандартные конфигурации web.xml, cxf-servlet.xml с файлом wsdl, но сервер выдал следующую ошибку

Библиотека Apache CXF (cxf-api-2.7.3.jar), обнаруженная в развертывании конечной точки ws; либо обеспечить правильное развертывание, заменив встроенные библиотеки зависимостями модуля контейнера, либо отключить подсистему веб-сервисов для текущего развертывания, добавив правильный jboss-deployment-structure.xml

Я использую Maven для процесса сборки и развертывания. Читая дальше, я понимаю, что Wildfly использует стек JBossWS, а конфигурация CXF на основе Spring не рекомендуется. Также я должен использовать wsdl2java или wsprovide/wsconsume? Может ли кто-нибудь указать мне, как настроить простой проект для создания первого веб-сервиса WSDL и развертывания на Wildfly, или указать мне рабочий пример.

Ценю помощь, спасибо.


person Nova Guy    schedule 02.10.2014    source источник
comment
wildfly использует cxf для веб-сервисов. Не объединяйте его с развертыванием. Поскольку вы используете maven, установите область действия   -  person maress    schedule 02.10.2014
comment
Я попробовал это, и теперь выдает следующую ошибку: java.lang.ClassNotFoundException: org.apache.cxf.transport.servlet.CXFServlet from [Module deployment.SimpleJaxWSExample.war:main from Service Module Loader]   -  person Nova Guy    schedule 02.10.2014
comment
Какую IDE вы используете? Я делаю это на wildfly с помощью Netbeans довольно легко.   -  person Namphibian    schedule 03.10.2014


Ответы (3)


Причина вышеприведенного сообщения как раз в том, что подсистема веб-сервисов WildFly обнаружила библиотеки Apache CXF в развертывании. Это не то, как приложение JavaEE, использующее веб-службы, должно предоставляться и развертываться в контейнере JavaEE, таком как WildFly, в основном потому, что контейнер отвечает за предоставление функций механизма WS. В частности, когда дело доходит до WildFly, Apache CXF используется внутри, поэтому, добавляя некоторые библиотеки cxf в свое развертывание, пользователь может столкнуться со сложными проблемами загрузки классов, которые он не сможет легко решить. Во всяком случае, в сообщении говорится, что нужно сделать: зависимости модулей (JBoss) должны быть определены в развертывании. Это можно легко сделать в развертывании MANIFEST.MF; некоторый документ по этому вопросу на https://docs.jboss.org/author/display/JBWS/JBoss+Modules (но вы можете поискать модули JBoss в Google и найти много информации).

Вообще говоря, я действительно рекомендую прочитать документ по адресу https://docs.jboss.org/author/display/JBWS/Apache+CXF+integration#ApacheCXFintegration-BuildingWSapplicationstheJBossway, в котором более подробно объясняется интеграция JBossWS с Apache CXF и даются указания по правильной упаковке приложений.

person Alessio Soldano    schedule 23.02.2015

Добавьте все зависимости с предоставленной областью действия, так как у wildfly есть свои собственные банки cxf. wildfly не требует cxf jar для выполнения ws. только вам нужны файлы cxf для IDE для компиляции проекта.

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxws</artifactId>
    <version>${cxf.version}</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http</artifactId>
    <version>${cxf.version}</version>
    <scope>provided</scope>
</dependency>
    <!-- Jetty is needed if you're are not using the CXFServlet -->
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http-jetty</artifactId>
    <version>${cxf.version}</version>
    <scope>provided</scope>
</dependency>

вы можете найти ответ здесь

person Nirmal Dhara    schedule 08.05.2015

Дополнительное предложение: прочитайте http://jbossws.blogspot.it/2014/09/how-to-kick-start-ws-project-in-few.html и попробуйте описанный архетип maven для создания правильно настроенного и работающего клиента WS за несколько секунд. .

Если вам интересно, я также написал книгу, которая также охватывает эту тему, см. http://jbossws.blogspot.it/2014/09/a-book-on-jax-ws-in-wildfly-and-more.html

person Alessio Soldano    schedule 23.02.2015