Как развернуть службу Jax-W для затмения или Tomcat? - PullRequest
5 голосов
/ 08 июля 2010

Как начинающий веб-сервис, я пытался в течение 2 недель заставить веб-сервис hello world работать с maven, eclipse и tomcat.

Я перестал пытаться заставить работать любой из генераторов кода / wsdlи я последовал этому уроку http://myarch.com/create-jax-ws-service-in-5-minutes, чтобы передать пример кода, который является блестящим.

Это приводит к 4 файлам классов и файлу WSDL.

Так что мой глупый вопроскак «запустить» службу в eclipse и / или на tomcat?

Я пытался просто развернуть их как веб-приложение, но без радости - в web.xml нет ничего, чтобы сообщить сервлетному движку, что сетьсервис существует, поэтому я думаю, что он никогда не сможет работать.

Нужно ли мне иметь специальный контейнер веб-сервиса (например, axis2, metro или CXF) внутри tomcat и развертывать на нем?Или он может просто работать с некоторыми jax-ws jars + таинственной конфигурацией?

Я не хочу устанавливать в tomcat metro (который использует ant и предназначен для glassfish), или axis2 (который использует ant,и большинство людей, кажется, не рекомендуют).

Я посмотрел на CXF, но нигде на их сайте не могу найти, как установить / настроить его на tomcat (или eclipse) без пружины.Я поместил jar-файлы CFX в зависимости от maven и установил плагин eclipse, но это поможет вам приблизиться к фактическому запуску веб-сервиса без использования тайного конфигурационного клея.CXF, похоже, привязан к Spring, что является для нас большим минусом, поскольку мы не используем spring (или не нуждаемся в каких-либо его функциях).

Я заметил, что у helios wtp есть какой-то проект веб-сервиса под названием JSR-109.Это только java RPC или он поддерживает полную систему веб-сервисов SOAP, и стоит ли пытаться выяснить это?

Любой совет очень приветствуется.Я, должно быть, гуглил 1000 страниц в поисках святого Грааля в Интернете - то есть, как создать и развернуть один к другому.Это должно быть так сложно?

Ответы [ 3 ]

4 голосов
/ 30 сентября 2012

Добавьте этот фрагмент в web.xml файл

<servlet>
    <servlet-name>wshello</servlet-name>
    <servlet-class>
        com.sun.xml.ws.transport.http.servlet.WSServlet
    </servlet-class>              
</servlet>      
<servlet-mapping>
    <servlet-name>wshello</servlet-name>
        <url-pattern>/webservice</url-pattern>
</servlet-mapping>

, а затем просто создайте файл с именем sun-jaxws.xml .

<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"  version="2.0">
  <endpoint  name="WebServiceTest"
             implementation="your.webservice.impl.ClassName"
             url-pattern="/webservice"/>
</endpoints>

Затем создайте файл войны, как обычно.Вам не нужны CXF или Axis для развертывания базового WebService в Tomcat.Кстати, библиотеки jax-ws (jaxws-api.jar, jaxb-impl.jar и т. Д.) Должны быть в вашем пути к классам.Вы можете скачать библиотеки jax-ws с здесь

1 голос
/ 20 июля 2010

Взгляните на http://www.jroller.com/gmazza/entry/web_service_tutorial. Это полное пошаговое руководство для CXF и метро.Tomcat используется для развертывания, а также есть версии maven и ant, если вы предпочитаете один из вариантов организации сборок проекта.

1 голос
/ 09 июля 2010

Я знаю, что это клише, но похоже, что вы пытаетесь изобрести велосипед.Есть причина, по которой есть такие вещи, как Axis2 и CXF.Они делают большую тяжелую работу для вас.Я использовал оба и имел большой успех с ними.Имейте в виду, я говорю об ограниченном личном опыте.

Я обнаружил, что CXF и Spring очень упрощают настройку службы JAX-WS на основе контракта и даже добавляют WS-Security, ведение журнала сообщений., проверка схемы и настройки конфигурации HTTP.В основном делается с помощью конфигурационного файла Spring XML.Я также узнал, что Spring можно использовать с Quartz для планирования заданий и управления доступом к данным.Это довольно удобный инструмент.

Axis2, хотя я давно его не использовал, я помню, что он довольно легко превращает некоторые POJO в сервис с минимальными усилиями.

МойЕдинственный опыт работы с Metro - это небольшой тестовый сервис, который я создал с помощью NetBeans и запустил на встроенном сервере Glassfish.Это было очень легко, но IDE проделала большую часть работы за вас, что, вероятно, не является хорошим способом обучения.Мне казалось, что потребовалось всего несколько щелчков мышью, и внезапно появился сервис.

Также этот вопрос в некотором роде связан.

Удачи!

...