Web Service 之JAX-WS 與CXF實現

來源:互聯網
上載者:User

標籤:產生   ams   find   bre   mba   imp   clr   jqm   n3k   

  Web Service的實現方式有很多種,本篇介紹的是基於JAX-WS(純Java)實現的,然後藉由CXF工具產生Javabean。

  

  第一步:建立一個Java工程,編寫CalService介面,此介面就是提供Web服務的介面。

 1 package com.fx.inf; 2  3 import javax.jws.WebMethod; 4 import javax.jws.WebService; 5  6 //標記服務端點介面(SEI)  7 @WebService 8 public interface CalService { 9 10     //應用於伺服器服務端點介面(SEI)上的方法-求和的方法11     @WebMethod12     public double add(double i , double j );13     14     //應用於伺服器服務端點介面(SEI)上的方法-求差的方法15     @WebMethod16     public double sub(double i , double j );17     18     //應用於伺服器服務端點介面(SEI)上的方法-求積的方法19     @WebMethod20     public double mul(double i , double j );21     22     //應用於伺服器服務端點介面(SEI)上的方法-求商的方法23     @WebMethod24     public double div(double i , double j );25     26 }

  第二步:編寫介面的實作類別CalServiceImpl。

 1 package com.fx.inf.impl; 2  3 import javax.jws.WebMethod; 4 import javax.jws.WebService; 5  6 import com.fx.inf.CalService; 7  8 //endpointInterface表示該類必須實現此介面的所有方法,serviceName表示web service的服務名稱 9 @WebService(endpointInterface="com.fx.inf.CalService",serviceName="CalService")10 public class CalServiceImpl implements CalService {11 12     @Override13     @WebMethod14     public double add(double i, double j) {15         // TODO Auto-generated method stub16         return i + j;17     }18 19     @Override20     @WebMethod21     public double sub(double i, double j) {22         // TODO Auto-generated method stub23         return i - j;24     }25 26     @Override27     @WebMethod28     public double mul(double i, double j) {29         // TODO Auto-generated method stub30         return i * j;31     }32 33     @Override34     @WebMethod35     public double div(double i, double j) {36         // TODO Auto-generated method stub37         if (j != 0 ) {38             return i / j;39         }else{40             return 0;41         }42     }43 44 }

 

  第三步:編寫測試方法,發布該服務。

 1 package com.fx.test; 2  3 import javax.xml.ws.Endpoint; 4  5 import com.fx.inf.CalService; 6 import com.fx.inf.impl.CalServiceImpl; 7  8 public class CalServiceTest { 9 10     public static void main(String[] args) {11         System.out.println("--->Web Service Start");12         13         CalService cal = new CalServiceImpl();14         String address = "http://localhost:8888/cal";15         //發布此服務16         Endpoint.publish(address, cal);17     }18     19 }

  運行該Test,發布成功:

  

  第四步:開啟一個瀏覽器,輸入http://localhost:8888/cal?wsdl,得到一些資訊,這便是wsdl檔案:

  

  借用CXF工具(CXF的bin目錄下有一些指令,可以將wsdl檔案自動轉換為Javabean檔案),將wsdl編譯為Javabean檔案:     

  

  第五步:將得到的檔案拷貝到一個新的Java項目下:

  

  編寫測試類別:

 1 package com.fx.test; 2  3 import com.fx.inf.CalService; 4  5 public class CalTest { 6  7     public static void main(String[] args) { 8          9         com.fx.inf.impl.CalService cal = new com.fx.inf.impl.CalService();10         11         CalService calSer = cal.getCalServiceImplPort();12         13         System.out.println("--->add:" + calSer.add(1, 2));14         System.out.println("--->sub:" + calSer.sub(1, 2));15         System.out.println("--->mul:" + calSer.mul(1, 2));16         System.out.println("--->div:" + calSer.div(1, 2));17         18     }19     20 }

  運行,得到結果:

  

 

  ps:這邊一定要注意,之前發布服務的那個java項目不要停掉,否則這邊會報錯:

  

Web Service 之JAX-WS 與CXF實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.