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

原创 2018年04月17日 17:50:18

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


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/java_xuetu/article/details/79977363

用JAX-WS在Tomcat中发布WebService

JDK中已经内置了Webservice发布,不过要用Tomcat等Web服务器发布WebService,还需要用第三方Webservice框架。Axis2和CXF是目前最流行的Webservice框架...
  • accountwcx
  • accountwcx
  • 2015-07-14 22:49:36
  • 13465

JAX-WS 构建简单webservice部署到tomcat上

JAX-WS(三)构建简单webservice部署到tomcat上 前言: 虽然构建本地的jax-ws的webservice很简单,但要部署到tomcat上要绕过点弯。 tomcat本身和jdk...
  • u010395804
  • u010395804
  • 2014-07-14 18:47:32
  • 2405

jax-ws之webservice security(安全)3

出自:http://blog.csdn.net/lifetragedy/article/details/7212130 前言: 在今天的学习中,我们讲开始过渡到一个真正的websecurity例子...
  • Small____Fish
  • Small____Fish
  • 2012-11-21 21:29:55
  • 6514

JAX-WS(JWS):Java WebService

Java 的 WebService概述 本文主要介绍java6以后的JAX-WS(JWS), Java 的 WebService框架有JWS、Axis2、XFire、CXF、Spring WS,简单介...
  • conquer0715
  • conquer0715
  • 2016-04-21 16:40:47
  • 4472

WebService例子及其如何部署到tomcat上面

  • 2018年04月17日 17:47
  • 4.33MB
  • 下载

使用JAX-WS(JWS)发布WebService

  • 2014年06月24日 08:55
  • 1.56MB
  • 下载

WebService学习之旅(三)JAX-WS与Spring整合发布WebService

Spring本身就提供了对JAX-WS的支持,有兴趣的读者可以研究下Spring的Spring-WS项目,项目地址: http://docs.spring.io/spring-ws/sites/1....
  • Rongbo_J
  • Rongbo_J
  • 2016-03-25 20:43:41
  • 13145

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

  • 2017年06月15日 11:13
  • 5.15MB
  • 下载

WebService学习之旅(一)使用JAX-WS发布WebService

JAX-WS全称Java™ API for XML Web Services,是随着JDK1.6及其后续版本发布的方便Java程序员开发WebService应用的一组API,通常简称为JWS,目前版本...
  • Rongbo_J
  • Rongbo_J
  • 2016-03-22 21:13:16
  • 3550

jws jax-ws jax-rs jaxb cxf axis2 关系

JWS:是指与webservice相关的J2EE(其实现在应该叫做Java EE吧)技术叫做JWS(全称就是java webservice)。     简要说一下 JAX-WS 和JAX-RS   ...
  • n369497017
  • n369497017
  • 2014-11-27 20:32:28
  • 1130
收藏助手
不良信息举报
您举报文章:JWS(又叫JAX-WS) 实现 WebService 的小例子及其部署到tomcat上面
举报原因:
原因补充:

(最多只允许输入30个字)