第一個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"
毫無疑問的 斷網后程序無法運行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM