Вот руководство, которое покажет вам, как развернуть веб-службы JAX-WS в контейнере сервлетов Tomcat . См. Следующие краткие этапы развертывания веб-службы.
, Создать веб-сервис (конечно).
, Создайте sun-jaxws.xml , определяющий класс реализации веб-сервиса.
, Создать стандартный
web.xml
, определяющий
WSServletContextListener
,
WSServlet
и структура веб-проекта.
, Инструмент для создания файла WAR.
, Скопируйте зависимости JAX-WS в папку «$ \ {Tomcat}/lib».
, Скопируйте WAR в папку «$ \ {Tomcat}/webapp».
, Начни это.
Структура каталогов этого примера, так что вы знаете, куда поместить ваши файлы.
Изображение://wp-content/uploads/2010/11/jaxws-deploy-tomcat-folder.png[JAXWS-развернуть-кот - папка, название = "JAXWS-развернуть-- папку кота", ширина = 315, высота = 313]
1. Веб-сервисы
Простой пример JAX-WS hello world.
File: HelloWorld.java
package com.mkyong.ws; import javax.jws.WebMethod; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import javax.jws.soap.SOAPBinding.Style; //Service Endpoint Interface @WebService @SOAPBinding(style = Style.RPC) public interface HelloWorld{ @WebMethod String getHelloWorldAsString(); }
File: HelloWorldImpl.java
package com.mkyong.ws; import javax.jws.WebService; //Service Implementation Bean @WebService(endpointInterface = "com.mkyong.ws.HelloWorld") public class HelloWorldImpl implements HelloWorld{ @Override public String getHelloWorldAsString() { return "Hello World JAX-WS"; } }
Позже вы развернете этот веб-сервис hello world на Tomcat.
2. sun-jaxws.xml
Создайте дескриптор развертывания веб-службы, который также называется дескриптором развертывания JAX-WS RI - sun-jaxws.xml.
File: 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="HelloWorld" implementation="com.mkyong.ws.HelloWorldImpl" url-pattern="/hello"/> </endpoints>
Когда пользователь получает доступ к URL-адресу /hello/ , он запускает объявленную веб-службу, которая называется HelloWorldImpl.java.
3. web.xml
Создайте стандартный web.xml дескриптор развертывания для развертывания.
Определяет
WSServletContextListener
в качестве класса слушателя,` WSServlet` в качестве вашего сервлета приветствия.
File: web.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app__2__3.dtd"> <web-app> <listener> <listener-class> com.sun.xml.ws.transport.http.servlet.WSServletContextListener </listener-class> </listener> <servlet> <servlet-name>hello</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>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> <session-config> <session-timeout>120</session-timeout> </session-config> </web-app>
4. Содержание войны
Используйте команду Ant, Maven или JAR, чтобы создать WAR-файл, чтобы включить все внутри. Содержание WAR должно выглядеть так:
WEB-INF/classes/com/mkyong/ws/HelloWorld.class WEB-INF/classes/com/mkyong/ws/HelloWorldImpl.class WEB-INF/web.xml WEB-INF/sun-jaxws.xml
-
Примечание ** + Для тех, кто заинтересован, вот файл Ant для создания этого проекта и создания файла WAR.
File: build.xml
<project name="HelloWorldWS" default="dist" basedir="."> <description> Web Services build file </description> <!-- set global properties for this build --> <property name="src" location="src"/> <property name="build" location="build"/> <property name="dist" location="dist"/> <property name="webcontent" location="WebContent"/> <target name="init"> <!-- Create the time stamp --> <tstamp/> <!-- Create the build directory structure used by compile --> <mkdir dir="${build}"/> </target> <target name="compile" depends="init" description="compile the source " > <!-- Compile the java code from ${src} into ${build} --> <javac srcdir="${src}" destdir="${build}"/> </target> <target name="war" depends="compile" description="generate the distribution war" > <!-- Create the war distribution directory --> <mkdir dir="${dist}/war"/> <!-- Follow standard WAR structure --> <copydir dest="${dist}/war/build/WEB-INF/" src="${webcontent}/WEB-INF/"/> <copydir dest="${dist}/war/build/WEB-INF/classes/" src="${build}"/> <jar jarfile="${dist}/war/HelloWorld-${DSTAMP}.war" basedir="${dist}/war/build/"/> </target> </project>
5. Зависимости JAX-WS
По умолчанию Tomcat не поставляется с какими-либо JAX-WS-зависимостями , поэтому вы должны включить его вручную.
{Пусто} 1. Зайдите сюда http://jax-ws.java.net/ . 2. Загрузите дистрибутив JAX-WS RI. 3. Распакуйте его и скопируйте следующие зависимости JAX-WS в папку библиотеки Tomcat « \ {$ TOMCAT}/lib «.
-
jaxb-impl.jar
-
jaxws-api.jar
-
jaxws-rt.jar
-
gmbal-api-only.jar
-
management-api.jar
-
stax-ex.jar
-
streambuffer.jar
-
policy.jar
6. Развертывание
Скопируйте созданный файл WAR в папку \ {$ TOMCAT}/webapps/ и запустите сервер Tomcat.
Для тестирования вы можете получить доступ к этому URL:
http://localhost : 8080/HelloWorld/hello , если вы видите следующую страницу, это означает, что веб-сервисы успешно развернуты.
Изображение://wp-content/uploads/2010/11/jaxws-deploy-tomcat-example.png[JAXWS-развернуть-кот - например, название = "JAXWS-развернуть-- пример кота", ширина = 640, высота = 282]
Скачать исходный код
Загрузить - ссылка://wp-content/uploads/2010/11/JAX-WS-Deploy-To-Tomcat-Example.zip[JAX-WS-Deploy-To-Tomcat-Example.zip](13 КБ)
Ссылка
, http://jax-ws.java.net/nonav/2.1.4/docs/jaxws-war.html [JAX-WS WAR-файл
Упаковка], http://jax-ws.java.net/guide/Deploying Metro endpoint.html[Deploying
Конечная точка метро], http://weblogs.java.net/blog/kohlert/archive/2006/01/publishing a re.html[Publishing
веб-сервис RESTful с JAX-WS]
ссылка://тег/развернуть/[развернуть]ссылка://тег/jax-ws/[jax-ws]ссылка://тег/кот/[кот]