JWS(又叫JAX-WS) 实现 WebService 的小例子及其部署到tomcat上面

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就发布成功了。


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

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

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

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


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


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


红圈的是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方法,结果如下:


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


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


包和类,都和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项目都是一样的了。

下载资源:https://download.csdn.net/download/java_xuetu/10355531


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值