在Tomcat上部署JAX-WS Web服务
这是一个指南,向您展示如何在Tomcat Servlet容器上部署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世界示例。
文件: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服务已成功部署。
下载源代码
参考
From: https://mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/
推荐阅读
-
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
-
Docker容器上用DockerFile部署多个tomcat服务的步骤
-
tomcat 6.0.20在一个机器上安装多个服务的方法
-
在同一台服务器上配置多个Tomcat的方法
-
在Web服务器上如何启用并运行FTP服务
-
Eclipse环境下如何配置Tomcat(把项目部署到Tomcat服务器上)
-
Python Web程序部署到Ubuntu服务器上的方法
-
CentOS7.x+JDK+Mysql+Tomcat服务器环境web项目部署
-
在Tomcat中部署Web项目的操作方法(必看篇)
-
在MyEclipse上部署Tomcat服务器的方法