Как вручную развернуть веб-сервис на Tomcat 6? - PullRequest
31 голосов
/ 25 марта 2010

Я учусь разрабатывать веб-сервисы SOAP с помощью Java.

Пока что я следую этому прекрасному учебнику

http://web.archive.org/web/20120626005333/http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/

Все идет хорошо, мой веб-сервис работает из командной строки со встроенным сервером, а затем с помощью NetBeans развернул его на Tomcat.

Мне бы хотелось узнать, как вручную развернуть его на Tomcat, чтобы узнать, как это делается, и потому что мне не нравится зависеть от IDE.

Я имею в виду, я хотел бы знать, как все можно сделать из командной строки и текстового редактора.

Я также нашел эту ссылку, которая объясняет, как вручную развернуть сервлет в Tomcat,

http://linux -sxs.org / internet_serving / c292.html

но я не смог найти ни одной статьи, рассказывающей о том, как развернуть веб-сервис.

Большое спасибо.

Ответы [ 5 ]

39 голосов
/ 28 марта 2010

Как вручную создать и развернуть веб-сервис jax-ws для tomcat

Я пытался выяснить, как ВРУЧНУЮ создавать и развертывать веб-сервис для изучения разных мест.

Я начал с этой превосходной статьи

http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/ (новый URL: http://www.oracle.com/technetwork/articles/javase/jax-ws-2-141894.html)

Идея заключалась в том, чтобы сделать все это, используя только блокнот и командную строку.

Единственный способ, которым я мог добиться, - это развернуть веб-сервис с netbeans, а затем посмотреть на файл, сгенерированный войной, в \ dist \ .war (это просто zip-файл, вы можете открыть его с помощью 7zip) *

Я оставляю это на всякий случай, если кто-то заинтересован и для целей документации ...

Если кто-нибудь знает более простой способ, пожалуйста, дайте мне знать !!!

проверено на:

C:\tomcat6\bin>version
Server version: Apache Tomcat/6.0.26
Server built:   March 9 2010 1805
Server number:  6.0.26.0
OS Name:        Windows XP
OS Version:     5.1
Architecture:   x86
JVM Version:    1.6.0_18-b07
JVM Vendor:     Sun Microsystems Inc.

Saludos

1027 * SAS *

1. создайте следующий каталог c:\java\src\ws

2. создайте следующий файл c:\java\src\ws\Adder.java

// c:\java\src\ws\Adder.java
package ws;
import javax.jws.WebService;

@WebService
public class Adder {
 public double add( double value1, double value2 ) {
  return value1 + value2;
 }
}

3. стоя на c:\java\src\ execute

c:\java\src> javac ws\Adder.java

файл c:\java\src\ws\Adder.class will be generated

4. создайте следующую структуру каталогов со следующими файлами

c:\tomcat6\webapps\adder_ws

META-INF
  context.xml
WEB-INF
  classes
    ws
      Adder.class
  lib
    activation.jar
    webservices-api.jar
    webservices-extra.jar
    webservices-extra-api.jar
    webservices-rt.jar
    webservices-tools.jar
  sun-jaxws.xml
  web.xml

5. скопировать скомпилированный файл

копия c:\java\src\ws\Adder.class c:\tomcat6\webapps\adder_ws\WEB-INF\classes\ws\Adder.class

6. C: \ tomcat6 \ WebApps \ adder_ws \ META-INF \ context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/adder_ws"/>

7. C: \ tomcat6 \ WebApps \ adder_ws \ WEB-INF \ web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <listener>
        <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>Adder</servlet-name>
        <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Adder</servlet-name>
        <url-pattern>/add</url-pattern>
    </servlet-mapping>
<!-- not needed
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
-->
</web-app>

8. Конфиг WEB-INF\sun-jaxws.xml

file: c: \ tomcat6 \ webapps \ adder_ws \ WEB-INF \ sun-jaxws.xml

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

9. Скопировать библиотеки

файлов в c: \ tomcat6 \ webapps \ adder_ws \ WEB-INF \ lib

копировать файлы NetBeans из

[netbeans dir]\enterprise\modules\ext\metro\*.*

и

[netbeans dir]\ide\modules\ext\jaxb\activation.jar

10. перезапустите apache

Завершение работы: c: \ tomcat6 \ bin \ shutdown.bat

Запуск: c: \ tomcat6 \ bin \ startup.bat

11. Тест

Откройте веб-браузер и перейдите на http://localhost:8080/adder_ws/add?wsdl Вы также можете использовать такой инструмент, как soapui (http://www.soapui.org/) для тестирования веб-сервиса

вот и все, наверное, сейчас я посмотрю, как затмения это делают ...

4 голосов
/ 13 апреля 2010

В следующих статьях приведено пошаговое руководство по созданию и развертыванию веб-служб JAX-WS вручную. Он использует Ant в качестве инструмента сборки.

Создание веб-службы JAX-WS

4 голосов
/ 01 апреля 2010

вот еще одна полезная статья

это своего рода ответ на мой собственный вопрос

http://java.dzone.com/articles/jax-ws-deployment-five-minute

3 голосов
/ 25 марта 2010

Я бы ожидал, что развертываемый объект будет одинаковым для веб-службы и сервлета.А именно, файл .war.Так что вы должны иметь возможность развернуть его таким же образом.

2 голосов
/ 22 июля 2013

Я вижу, что никто не упомянул Обучающие программы JAX-WS от Mkyong.com.

В разделе «Безопасность JAX-WS в Tomcat» на странице «Учебное пособие по JAX-WS» приведен краткий, на конкретный урок и учебник с картинками, рассказ о том, чего хотел ОП: Развертывание веб-служб JAX-WS на Tomcat

...