使用Eclipse通过Maven发布JAX-WS Web服务到Tomcat

第一步:通过Eclipse新建jaxws_server项目

Eclipse New Maven Project - 勾选 Create a simple project
Group Id:net.byml
Artifact Id:jaxws_server
Version:0.0.1-SNAPSHOT
Packageing:war

修改pom.xml添加

    <dependencies>
        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>jaxws-rt</artifactId>
            <version>2.2.8-promoted-b131</version>
        </dependency>

    </dependencies>

也可以不通過Eclipse手動創建maven項目,完整的pom.xml如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>net.byml</groupId>
    <artifactId>jaxws_server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>jaxws-rt</artifactId>
            <version>2.2.8-promoted-b131</version>
        </dependency>
    </dependencies>
</project>


第二步:创建Java文件

New Package:net.byml.ws

New Interface:HelloWorld

package net.byml.ws;

import javax.jws.WebMethod;
import javax.jws.WebService;

//Service Endpoint Interface
@WebService
public interface HelloWorld {
    @WebMethod
    String say();
}

New Class:HelloWorldImpl

package net.byml.ws;

import javax.jws.WebService;

//Service Implementation Bean

@WebService(endpointInterface = "net.byml.ws.HelloWorld")
public class HelloWorldImpl implements HelloWorld {

    @Override
    public String say() {
        return "Hello World JAX-WS";
    }
}


第三步:创建部署描述符

在src/main/webapp下新建目录WEB-INF

创建文件 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.


创建文件 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>

第四步:发布jaxws_server到tomcat并访问

直接执行mvn tomcat:run,通过 http://localhost:8080/jaxws_server/hello 访问

或者执行 mvn package ,生成jaxws_server-0.0.1-SNAPSHOT.war
改名为jaxws_server.war,复制到tomcat的webapp目录,启动tomcat后访问


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值