欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在Tomcat上部署JAX-WS Web服务

程序员文章站 2022-07-15 13:06:38
...

这是一个指南,向您展示如何在Tomcat Servlet容器上部署JAX-WS Web服务 请参阅Web服务部署的以下摘要步骤。

  1. 创建一个Web服务(当然)。
  2. 创建一个sun-jaxws.xml ,定义Web服务实现类。
  3. 创建一个标准的web.xml ,定义WSServletContextListenerWSServlet和Web项目的结构。
  4. 生成工具以生成WAR文件。
  5. 将JAX-WS依赖项复制到“ $ {Tomcat} / lib”文件夹。
  6. 将WAR复制到“ $ {Tomcat} / webapp”文件夹。
  7. 启动它。

此示例的目录结构,以便您知道将文件放置在何处。

在Tomcat上部署JAX-WS Web服务

1. Web服务

一个简单的JAX-WS hello世界示例。

文件: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();
	
}

文件: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";
	}
}

稍后,您将在Tomcat上部署此Hello World Web服务。

2. sun-jaxws.xml

创建一个Web服务部署描述符,也称为JAX-WS RI部署描述符 – sun-jaxws.xml。

档案: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

注意
有关详细的端点属性,请参阅本文

3. web.xml

为部署创建标准的web.xml 部署描述符 WSServletContextListener定义为侦听器类,将WSServlet定义为您的hello servlet。

档案: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文件。

文件: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
  • 管理api.jar
  • stax-ex.jar
  • streambuffer.jar
  • policy.jar

6.部署

将生成的WAR文件复制到{$ TOMCAT} / webapps /文件夹中,然后启动Tomcat服务器。

为了进行测试,您可以访问以下URL: http:// localhost:8080 / HelloWorld / hello ,如果您看到以下页面,则表示Web服务已成功部署。

在Tomcat上部署JAX-WS Web服务

下载源代码

下载它– JAX-WS-Deploy-To-Tomcat-Example.zip (13KB)

参考

  1. JAX-WS WAR文件打包
  2. 部署Metro端点
  3. 使用JAX-WS发布RESTful Web服务

From: https://mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/