ここでは、Tomcat ** サーブレット・コンテナにJAX-WS Webサービスをデプロイする方法を説明します。 Webサービスデプロイメントの以下の要約手順を参照してください。

  1. Webサービスを作成します(もちろん).


  2. sun-jaxws.xml

    を作成し、Webサービス実装クラスを定義します.

  3. 標準** web.xmlを作成し、 `WSServletContextListener`を定義します.

WSServletとWebプロジェクトの構造

  1. WARファイルを生成するためのビルドツール.

  2. JAX-WSの依存関係を “$ \ {Tomcat}/lib”フォルダにコピーします.

  3. WARを “$ \ {Tomcat}/webapp”フォルダにコピーします.

  4. 始めよう.

この例のディレクトリ構造は、ファイルをどこに置くかを知るためのものです。


jaxws-deploy-tomcat-folder、title = "jaxws-deploy-tomcat-folder"、width = 315、高さ= 313

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サービスが正常にデプロイされていることを意味します。


jaxws-deploy-tomcat  -  example、title = "jaxws-deploy-tomcat-example"、width = 640、高さ= 282

ソースコードをダウンロードする

ダウンロード – リンク://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/guide/Deploying


Metro

endpoint.html[Deploying

メトロエンドポイント]。

http://weblogs.java.net/blog/kohlert/archive/2006/01/publishing


a

re.html[Publishing

JAX-WSを使用したRESTful Webサービス]