`
eimhee
  • 浏览: 2160478 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Tomcat 上部署JAX-WS web services

阅读更多

Here’s a guide to show you how to deploy JAX-WS web services on Tomcat servlet container. See following summary steps of a web service deployment.

  1. Create a web service (of course).
  2. Create a sun-jaxws.xml, defines web service implementation class.
  3. Create a standard web.xml, defines WSServletContextListenerWSServlet and structure of a web project.
  4. Build tool to generate WAR file.
  5. Copy JAX-WS dependencies to “${Tomcat}/lib” folder.
  6. Copy WAR to “${Tomcat}/webapp” folder.
  7. Start It.

Directory structure of this example, so that you know where to put your files.

jaxws-deploy-tomcat--folder

1. WebServices

A simple JAX-WS hello world example.

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";
	}
}

Later, you will deploy this hello world web service on Tomcat.

2. sun-jaxws.xml

Create a web service deployment descriptor, which is also known as JAX-WS RI deployment descriptor – 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>

When user access /hello/ URL path, it will fire the declared web service, which is HelloWorldImpl.java.

Note
For detail endpoint attributes , see this article.

3. web.xml

Create a standard web.xml deployment descriptor for the deployment. Defines WSServletContextListener as listener class, WSServlet as your hello servlet.

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 Content

Use Ant, Maven or JAR command to build a WAR file to include everything inside. The WAR content should look like this :

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
Note
For those who are interested, here’s the Ant file to build this project and generate the WAR file.

 

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 Dependencies

By default, Tomcat does not comes with any JAX-WS dependencies, So, you have to include it manually.

1. Go here http://jax-ws.java.net/.
2. Download JAX-WS RI distribution.
3. Unzip it and copy following JAX-WS dependencies to Tomcat library folder “{$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. Deployment

Copy the generated WAR file to {$TOMCAT}/webapps/ folder and start the Tomcat server.

For testing, you can access this URL : http://localhost:8080/HelloWorld/hello, if you see following page, it means web services are deploy successfully.

jaxws-deploy-tomcat--example

Download Source Code

Download It – JAX-WS-Deploy-To-Tomcat-Example.zip (13KB)

 

分享到:
评论

相关推荐

    jax-ws webservice demo

    注:如果使用的是 myeclipse 时 server 部署到tomcat 启动的时候会报错 解决办法:找到myeclipse安装目录下的 plugins 目录里 查找 webservices-rt.jar,然后将webservices-rt.jar 外层的 lib目录里删除,或者备份的...

    Jax-ws所需要的JAR包

    Java API for XML Web Services(JAX-WS)是Java平台上用于构建和消费Web服务的标准API。它简化了创建和使用Web服务的过程,使得开发者能够通过SOAP消息与远程服务进行交互。JAX-WS允许开发者将服务接口直接映射到...

    JAX-WS所需Jar包

    JAX-WS(Java API for XML Web Services)是Java平台上的一个标准,用于构建和部署Web服务。这个标准允许开发人员使用简单的编程模型来创建和消费Web服务,从而简化了分布式系统间的交互。在Java环境中,JAX-WS提供...

    jax-rs jax-ws所需包,亲测可用

    2. **JAX-WS**(Java API for XML Web Services)是Java平台上的SOAP(Simple Object Access Protocol)Web服务标准,主要用于创建面向服务的架构(SOA)。JAX-WS提供了处理XML消息、WSDL(Web服务描述语言)和UDDI...

    webservice Demo注解+jax-ws

    在这个“webservice Demo注解+jax-ws”示例中,我们将深入探讨Web服务的注解使用以及基于Java API for XML Web Services (JAX-WS)的实现。 首先,让我们了解一下JAX-WS。它是Java平台的标准组件,用于创建和处理Web...

    jax-ws api jar包

    JAX-WS(Java API for XML Web Services)是Java平台标准版(Java SE)和企业版(Java EE)的一部分,它为创建、部署和消费基于SOAP(Simple Object Access Protocol)的Web服务提供了全面的支持。JAX-WS允许开发者...

    jax-ws创建webservice

    4. **部署Web服务**:完成服务实现后,将项目部署到支持Java EE的服务器上,如Tomcat或Glassfish。MyEclipse提供了便捷的部署功能,可以一键将项目发布到本地或远程服务器。 5. **生成客户端代码**:为了让客户端...

    JAX-WS Web service

    JAX-WS(Java API for XML Web Services)2.0,由JSR 224定义,是Java EE 5平台的关键组成部分,它是JAX-RPC 1.1的升级版。JAX-WS的主要目标是简化基于XML的Web服务的开发任务,它提供了对SOAP 1.1和1.2,以及XML等...

    学习JAX-WSWebService开发

    JAX-WS(Java API for XML Web Services)是Java平台上的一个标准,用于构建和部署Web服务。它提供了一种简单、类型安全的方式来创建、调用Web服务,并且与Java SE和Java EE环境紧密集成。在本教程中,我们将深入...

    JAX-WS低版本

    总结起来,"JAX-WS低版本"项目是关于在Apache Tomcat服务器上使用JAX-WS 2.2.1来创建和部署基于SOAP的Web服务,以及生成和使用客户端存根进行远程调用。理解这些知识点对于进行Web服务开发和集成至关重要。

    webService部署tomcat需要的jax-ws jar包

    `SOAP` Web服务通常基于`WSDL`(Web服务描述语言)进行定义,而`JAX-WS`(Java API for XML Web Services)则是Java平台上的标准框架,用于处理`SOAP`消息并构建`SOAP` Web服务。本篇文章将详细介绍`JAX-WS`以及在...

    Jax-ws RI.zip

    在部署Web服务之前,开发者通常会使用JAX-WS工具生成服务端点接口和服务实现。服务端点接口定义了Web服务的公共API,而服务实现则包含具体的业务逻辑。然后,开发者会创建一个部署描述符(如web.xml),在其中配置...

    JAX-WS2.1用户指南

    使用JAX-WS,可以通过简单的注解在Java类上声明服务端点接口,并将其部署到支持JAX-WS的服务器上,如Tomcat或JBoss。服务可以使用HTTP、HTTPS等传输协议,并且可以与JMS、JCA等其他Java技术集成。 4. **SOAP消息...

    jax-ws2.1.zip

    在Java EE环境中,JAX-WS通常与Servlet容器(如Tomcat或Glassfish)一起使用,通过部署包含Web服务的WAR(Web Application Archive)文件来实现服务的发布。同时,开发者也可以使用IDE(如Eclipse或IntelliJ IDEA)...

    一个包含jax-ws和jax-rs的例子(含服务端和客户端)

    标题中的“一个包含jax-ws和jax-rs的例子(含服务端和客户端)”是指这是一个示例项目,它演示了如何使用Java API for XML Web Services (JAX-WS)和Java API for RESTful Web Services (JAX-RS)来创建和消费Web服务。...

    JAX-WS API, JAX-RS API

    Java API for XML Web Services (JAX-WS) 是Java平台上的一个标准接口,用于创建和消费Web服务。它是Sun Microsystems在2004年推出的一个重要框架,旨在简化Web服务的开发,使得Java开发者能够更方便地实现基于SOAP...

    JAX-WS在Tomcat中发布服务

    JAX-WS(Java API for XML Web Services)是Java平台上的一个标准,用于构建和部署Web服务。它提供了基于SOAP(Simple Object Access Protocol)的接口,使得开发人员可以方便地创建、消费和管理Web服务。在这个实例...

    如何基于JAX-WS开发一个WebService实例

    JAX-WS(Java API for XML Web Services)是Java平台上的一个标准,用于创建和消费Web服务。本篇将深入讲解如何基于JAX-WS开发一个WebService实例。 首先,让我们了解JAX-WS的基本概念。JAX-WS提供了一种简单的方式...

    设计与开发 JAX-WS 2.0 Web 服务

    - 将编写的Web服务部署到支持JAX-WS的应用服务器上,如Tomcat、GlassFish等。 - 使用SOAP UI或其他工具发送请求测试Web服务的功能。 通过以上步骤,您可以成功开发一个基于JAX-WS 2.0技术的Web服务。掌握了这些...

    JAX-WS 实现WebService发布

    JAX-WS(Java API for XML Web Services)是Java平台上用于创建Web服务的标准API,它简化了Web服务的开发、部署和消费过程。JAX-WS允许开发者使用Java语言来定义和实现Web服务,并通过SOAP(Simple Object Access ...

Global site tag (gtag.js) - Google Analytics