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