TomcatにJAX-WS Webサービスをデプロイする
ここでは、Tomcat ** サーブレット・コンテナにJAX-WS Webサービスをデプロイする方法を説明します。 Webサービスデプロイメントの以下の要約手順を参照してください。
-
Webサービスを作成します(もちろん).
-
sun-jaxws.xml
を作成し、Webサービス実装クラスを定義します. -
標準** web.xmlを作成し、 `WSServletContextListener`を定義します.
WSServletとWebプロジェクトの構造
-
WARファイルを生成するためのビルドツール.
-
JAX-WSの依存関係を “$ \ {Tomcat}/lib”フォルダにコピーします.
-
WARを “$ \ {Tomcat}/webapp”フォルダにコピーします.
-
始めよう.
この例のディレクトリ構造は、ファイルをどこに置くかを知るためのものです。
1. Webサービス
単純な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 WebサービスをTomcatにデプロイします。
2. 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>
ユーザーが
/hello/
URLパスにアクセスすると、宣言されたWebサービス(
HelloWorldImpl.java
)が起動します。
-
注** 詳細なエンドポイント属性については、こちらを参照してください。http://jax-ws.java.net/nonav/2.1.4/docs/jaxws-war.html[article]
3. web.xml
デプロイメント用の標準web.xml
デプロイメント記述子
を作成します。
リスナクラスとして
WSServletContextListener`を定義し、あなたのhelloサーブレットとして
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. WARコンテンツ
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
-
注意** 興味のある人は、このプロジェクトをビルドしてWARファイルを生成するためのAntファイルを作成してください。
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
、次のページが表示されたら、Webサービスが正常にデプロイされていることを意味します。
ソースコードをダウンロードする
ダウンロード – リンク://wp-content/uploads/2010/11/JAX-WS-Deploy-To-Tomcat-Example.zip[JAX-WS-Deploy-To-Tomcat-Example.zip](13KB)
リファレンス
-
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
JAX-WSを使用したRESTful Webサービス]