WebService 的框架有:JWS(又叫JAX-WS),Axis2,XFire,CXF,Spring WS,这些框架的区别,下次再说,这里只记录下JWS实现WebService的例子。

开发环境:

Eclipse
jdk 1.8
tomcat 8.0

WebService分为客户端和服务端。

一、JWS实现WebService的例子(这个例子不需要导入jar包,这些都是java自带的)

1、服务端:新建一个web项目:Test_01,有三个类:

接口类:TestWebService

接口实现类:TestWebServiceImpl

webservice发布类:Test

接口:TestWebService.java

package com.gl.service;

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

/**
 * @WebService 这是个WebService的接口
 * @author Administrator
 *
 */
@WebService
public interface TestWebService {

	/**
	 * @WebMethod 表示这个接口是要暴露给客户端的。
	 * @param name
	 * @return
	 */
	@WebMethod
	String sayHello(String name);
}

接口实现类:TestWebServiceImpl.java

package com.gl.service.impl;

import javax.jws.WebService;
import com.gl.service.TestWebService;

/**
 * @WebService 这是个WebService的接口
 * @author Administrator
 *
 */
@WebService
public class TestWebServiceImpl implements TestWebService {

	/**
	 * @WebMethod 表示这个接口是要暴露给客户端的。
	 * @param name
	 * @return
	 */
	@Override
	public String sayHello(String name) {
		return "调用成功了,这个是返回的天气,明天暴雨,城市:"+name;
	}

}

发布类:Test.java

package com.gl.test;

import javax.xml.ws.Endpoint;
import com.gl.service.impl.TestWebServiceImpl;

public class Test {
	public static void main(String[] args) {
		Endpoint.publish("http://192.168.1.130:8089/Service/ServiceHello", new TestWebServiceImpl());
		System.out.println("发布成功了");
	}
}

启动main方法,之后浏览器访问:http://192.168.1.130:8089/Service/ServiceHello?wsdl,如果出现以下xml文件,webservice就发布成功了。

java XWPFRun 样例_java

webservice发布成功后,启动的mian方法,不要关掉。

2、客户端:再新建一个web项目,Test_02

在DOS命令行窗口中输入:wsimport -s Test_02项目的src路径 -keep 你发布webservice的路径?wsdl,

如这里就该输入的和成功了该显示的如下(其中c盘出现的,都是dos命令窗口出现时初始化的,如果你的不是这样,不用管,把后面的命令打出来就行了):

java XWPFRun 样例_java_02

DOS命令行窗口进入快捷键为:系统键+R,之后在输入cmd。系统键如下图:

java XWPFRun 样例_xml_03

之后,选择项目Test_02,按F5刷新下,就好出现以下:

java XWPFRun 样例_java XWPFRun 样例_04

红圈的是webservice自动生成的,下面的Test.java是用来测试的类,代码如下:

package com.gl.test;

import com.gl.service.impl.TestWebServiceImpl;
import com.gl.service.impl.TestWebServiceImplService;

public class Test {
	public static void main(String[] args) {
		TestWebServiceImplService factory = new TestWebServiceImplService();
		TestWebServiceImpl wsIpml = factory.getTestWebServiceImplPort();
		String re = wsIpml.sayHello("深圳");
		System.out.println(re);
	}
}

启动min方法,结果如下:

java XWPFRun 样例_java XWPFRun 样例_05

二、如果你想把这个WebService发布到服务器上面时,就需要引入jar包和进行一些xml配置。

java XWPFRun 样例_java XWPFRun 样例_06

服务端:新建一个项目,项目名称为:JAX-WS_WebService

java XWPFRun 样例_java_07

包和类,都和Test_01项目的包、类是一样的。(Test这个类不需要了)只是这里多个3个地方,jar包、sum-jaxws.xml配置、web.xml配置

sum-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="TestService"
        implementation="com.gl.service.impl.TestWebServiceImpl"  
        url-pattern="/service/webService" />
        
</endpoints>

web.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>JAX-WS_WebService</display-name>
  
  
  <!-- WebService发布的配置  -->
  <listener>    
        <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>  
  </listener>  
  <servlet>  
        <servlet-name>TestService</servlet-name>    
        <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>  
  </servlet>
  <servlet-mapping>
        <servlet-name>TestService</servlet-name>    
        <url-pattern>/service/webService</url-pattern>    
  </servlet-mapping>
  
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

把这个项目部署到tomcat上面,启动tomcat。

这个WebService的访问路径是:如我发布该项目的服务器的ip是192.168.1.142,端口是8080,那么访问路径是:http://192.168.1.142:8080/Service/webService?wsdl。

如果这个访问路径出现xml文件,那么这个webService发包成功了。

这个JAX-WS_WebService项目部署好后,客户端的建立和Test_02项目都是一样的了。