第一个Web Service的开发、发布及应用(Java)

一、服务的开发
(开发框架很多  以cxf为例创建项目后  导入cxf的支持jar包)
①在web项目的资源文件夹src中建立格式如org.mike.ws的包
  创建服务的接口类HelloWorld.java代码如下

 1 package org.mike.ws;

 2 import javax.jws.WebService;

 3 

 4 /**

 5  * Web服务接口,第一个Web Service规范的发布版,HelloWorld

 6  * 

 7  * @author Mike

 8  *

 9  */

10 @WebService

11 public interface HelloWorld {

12     /**

13      * @param name 名字

14      * @return 欢迎参数指定的名字

15      */

16     public String sayHi(String name);

17     

18 }

②在src中建立如下格式如org.mike.ws.impl的包
   创建服务的实现类HelloWorldImpl.java

 1 package org.mike.ws.impl;

 2 

 3 import org.mike.ws.HelloWorld;

 4 import javax.jws.WebService;

 5 

 6 /**

 7  * Web服务接口,第一个web service规范的发布版,HelloWorld

 8  * 

 9  * @author Mike

10  *

11  */

12 @WebService(endpointInterface = "org.mike.ws.HelloWorld",

13  serviceName="HelloWorld")

14 public class HelloWorldImpl implements HelloWorld {

15 

16     /**

17      * @param name 名字

18      * @return 欢迎参数指定的名字

19      */

20     @Override

21     public String sayHi(String name) {

22         return "欢迎"+name;

23     }

24 

25 }

③在org.mike.ws包中创建类WSServlet.java用于发布服务

 1 package org.mike.ws;

 2 import javax.servlet.ServletConfig;

 3 import javax.xml.ws.Endpoint;

 4 import org.apache.cxf.transport.servlet.CXFNonSpringServlet;

 5 import org.mike.ws.impl.HelloWorldImpl;

 6 /**

 7  * @author Mike

 8  *

 9  */

10 public class WSServlet extends CXFNonSpringServlet {

11 

12     @Override

13     public void loadBus(ServletConfig servletConfig){

14         super.loadBus(servletConfig);

15         //发布服务

16         Endpoint.publish("/HelloWorld", new HelloWorldImpl());

17         

18     }

19 }

④修改网站的配置文件WebContent->WEB-INF->web.xml添加类说明和映射目录
 添加代码如下注意添加的位置

1 <servlet>

2         <servlet-name>WSServlet</servlet-name>

3         <servlet-class>org.mike.ws.WSServlet</servlet-class>

4     </servlet>

5     <servlet-mapping>

6         <servlet-name>WSServlet</servlet-name>

7         <url-pattern>/ws/*</url-pattern>

8         <!--上面很重要 使之应用最后映射为/ws/HelloWorld-->    

9     </servlet-mapping>

二、发布
将网站上传至服务器假设发布地址为http://127.0.0.1
此时可检验应用是否同时发布http://127.0.0.1/ws/HelloWorld?wsdl

三、客户端使用已发布的Web Service
说明:Web Service发布后是可以用任何语言访问的
本例使用Java演示
①创建Java工程wsClientTest
  导入Web Service支持类
  打开命令行界面转到本工程src目录下 输入命令wsimport -keep http://127.0.0.1/ws/HelloWorld?wsdl(该命令为jdk自带)
  src下边生成了Web Service支持类
②src下创建包test 并在包下创建类myTest.java代码如下

 1 package HelloWorldTest;

 2 

 3 import org.mike.ws.impl.*;

 4 

 5 

 6 public class test {

 7     public static void main(String[] args) {

 8         HelloWorld_Service factory = new HelloWorld_Service();

 9         HelloWorld hw=factory.getHelloWorldImplPort();

10         System.out.println(hw.sayHi("Mike"));        

11     }

12 }

运行后可以看到控制台输出了"欢迎Mike"
毫无疑问的 断网后程序无法运行

你可能感兴趣的:(web Service)