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后访问