久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

使用axis開發webservice詳解

摘要:本節主要用于介紹使用axis開發webservice,包括服務端的創建、webservice的部署、客戶端的調用。

preparation:

說明:相關的可能要了解SOAP(簡單對象訪問協議)、WSDL(web服務描述語言)、XML(可擴展標記語言)、axis(阿帕奇可擴展交互系統)等相關知識。

1.下載axis的jar包,請到apache官網或者在百度自行下載,然后導入jar包,不清楚的話導入所有的jar包就好了。(本人用的是axis1的版本,因為項目中用的是axis1的版本)

2.webservice客戶端生成工具genclient.bat(后面會對這個工具做一個簡單的說明)

之前介紹沒有說明本機的環境,現在把本機環境羅列一下:

系統:XP myeclipse:6.5 tomcat:5.X JDK:1.5

生成webservice的方式有XFire、Jax-WS、axis等,使用axis調用webservi有三種方式:動態調用接口、使用動態代理Dynamic
Proxy、使用從WSDL生成的存根generated Stubs from Service WSDL
description,由于本人工作中使用的是axis,調用webservice的方式用到的有動態調用接口、使用從WSDL生成的存根generated
Stubs from Service WSDL
description,故本節只介紹用axis調用webservice的這兩種方式。后續的拓展部分根據需要再說。

start:

第一步:服務器端的開發

(1)開發java文件

代碼如下:

接口文件:IBbossGroupInfoService.java

 
  1. package com.asiainfo.b2p.soap.interfaces;
  2. import java.rmi.RemoteException;
  3. public interface IBbossGroupInfoService {
  4. // 根據集團編號查詢集團基本信息
  5. /**
  6. * 集團編號 GROUP_NUM 集團名稱 GROUP_NAME 公司地址 CO_ADDR 集團狀態 GROUP_STATE 集團開戶時間
  7. * START_TIME 傳真 FAX 企業網址 WEB_URL 證件類型 CARD_TYPE 證件號碼 CARD_CODE
  8. * 公司郵編CO_POSTCODE 聯系電話 TEL_NUM 法人代表名稱 PERSON_NAME 發展類型 DEVELOP_TYPE
  9. * 地區編碼REGION_ID regionId
  10. *
  11. * @throws Exception
  12. */
  13. public abstract String groupInfo(long groupNo) throws Exception,
  14. RemoteException;
  15. // 根據集團編號查詢集團訂購歷史
  16. public abstract String groupSubHistoryInfo(long groupNo) throws Exception;
  17. }
 

實現類:IBbossGroupInfoServiceImpl.java

                                                                                                                                                                 
  1. package com.asiainfo.b2p.soap.impl;
  2. import org.apache.commons.logging.Log;
  3. import org.apache.commons.logging.LogFactory;
  4. import com.asiainfo.b2p.soap.interfaces.IBbossGroupInfoService;
  5. /**
  6. * @Product esop_dev
  7. * @FileName IBbossGroupInfoServiceImpl.java
  8. * @History TODO 根據集團編號,查詢集團基本信息、集團用戶信息、集團訂購歷史
  9. * @Version 1.0.0
  10. * @Date Nov 22, 2011
  11. * @Author pantaipeng
  12. * @Content 最初版本
  13. */
  14. public class IBbossGroupInfoServiceImpl implements IBbossGroupInfoService {
  15. private static transient Log log = LogFactory
  16. .getLog(IBbossGroupInfoServiceImpl.class);
  17. // 根據集團編號查詢集團基本信息
  18. public String groupInfo(long groupNo) throws Exception, RemoteException {
  19. log.info(“>>>>>>>>>>>>>>>>>>>>>>>>>>>集團編號=” + groupNo);
  20. //方法體我省略了,為了測試我僅加入一句打印語句
  21. System.out.println(“我是一個公共的方法,作用是根據集團編號查詢集團基本信息”);
  22. String xml=“<message>public_groupInfo</message>”;//為了測試,返回的信息我也是隨便寫的一個字符串
  23. return xml;
  24. }
  25. // 根據集團編號查詢集團訂購歷史
  26. public String groupSubHistoryInfo(long groupNo) throws Exception {
  27. log.info(“>>>>>>>>>>>>>>>>>>>>>>>>>>>集團編號=” + groupNo);
  28. //方法體我省略了,為了測試我僅加入一句打印語句
  29. System.out.println(“我是一個公共的方法,作用是根據集團編號查詢集團訂購歷史”);
  30. String xml=“<message>public_groupSubHistoryInfo</message>”;//為了測試,返回的信息我也是隨便寫的一個字符串
  31. return xml;
  32. }
  33. }
 

說明:為了更加的接近實際的開發,這個是本機上運行的程序,實現的功能是通過一個編號查詢相關信息拼成一個字符串,方法體的部分我刪除了,你需要用這個代碼的話,直接拷貝修改包名稱就可以直接用了。

(2)wsdd文件

wsdd文件只需加入一列幾行(前提是你之前已經有wsdd文件了,沒有的話可以在下載的apache的demo中拷貝一個):

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
  1. <service name=“GroupInfoService” type=“” provider=“java:RPC”>
  2. <parameter name=“className” value=“com.asiainfo.b2p.soap.impl.IBbossGroupInfoServiceImpl” ></parameter>
  3. <parameter name=“allowedMethods” value=“*”/>
  4. </service>
 

這個文件放在項目的WEB-INF下面。<service>標簽的name屬性是發布的webservice的名稱,可以自己命名,第一個<parameter>標簽的value屬性指定實現類的完整路徑,包括類名。其他的地方默認就好。
(3)配置web.xml文件

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
  1. <servlet>
  2. <servlet-name>AxisServlet</servlet-name>
  3. <display-name>Apache-Axis Servlet</display-name>
  4. <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  5. </servlet>
  6. <servlet-mapping>
  7. <servlet-name>AxisServlet</servlet-name>
  8. <url-pattern>/services/*</url-pattern>
  9. </servlet-mapping>
 

指定處理類以及映射就好,如果像這樣配置的話,后面再寫webservice的話,這個文件就不用再配置了。

第二步:客戶端的開發

(1).動態調用接口

代碼如下:

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
  1. package test.webserviceclient;
  2. import java.net.MalformedURLException;
  3. import java.net.URL;
  4. import java.rmi.RemoteException;
  5. import javax.xml.rpc.ParameterMode;
  6. import javax.xml.rpc.ServiceException;
  7. import org.apache.axis.client.Call;
  8. import org.apache.axis.encoding.XMLType;
  9. public class Test {
  10. /**
  11. * 通過genClient.bat文件生成的webservice客戶端調用webservice服務的步驟如下:
  12. * 1.創建service對象
  13. * 2.創建url對象
  14. * 3.創建call對象,
  15. * 4.調用webservice的方法
  16. */
  17. public static void test1() {
  18. try {
  19. // 1.創建service對象,通過axis自帶的類創建
  20. org.apache.axis.client.Service service = new org.apache.axis.client.Service();
  21. // 2.創建url對象
  22. String wsdlUrl = “http://10.10.146.82:8080/esop_dev/services/GroupInfoService?wsdl”;//請求服務的URL
  23. URL url = new URL(wsdlUrl);//通過URL類的構造方法傳入wsdlUrl地址創建URL對象
  24. // 2.創建服務方法的調用者對象call,設置call對象的屬性
  25. Call call = (Call) service.createCall();
  26. call.setTargetEndpointAddress(url);//給call對象設置請求的URL屬性
  27. String serviceName = “groupInfo”;
  28. call.setOperationName(serviceName);//給call對象設置調用方法名屬性
  29. call.addParameter(“groupNo”, XMLType.XSD_LONG, ParameterMode.IN);// 給call對象設置方法的參數名、參數類型、參數模式
  30. call.setReturnType(XMLType.SOAP_STRING);// 設置調用方法的返回值類型
  31. //4.通過invoke方法調用webservice
  32. long groupNo = 2100000014L;
  33. String res = (String) call.invoke(new Object[] { groupNo });//調用服務方法
  34. System.out.println(res);
  35. } catch (MalformedURLException e) {
  36. e.printStackTrace();
  37. } catch (ServiceException e) {
  38. e.printStackTrace();
  39. } catch (RemoteException e) {
  40. e.printStackTrace();
  41. }
  42. }
  43. public static void main(String[] args) {
  44. test1();
  45. }
  46. }
 

代碼中的注釋很詳細,我就不介紹了。

(2).使用從WSDL生成的存根generated Stubs from Service WSDL description

第一步:配置genclient.bat文件

右鍵單擊“編輯”打開bat文件如下(為了便于說明,每行的意思我就直接寫在后面了):

set Axis_Lib=E:esoplib -----指定工程的lib目錄 set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% -----默認 set Output_Path=E:esopsrc -----指定工程的src目錄 set Package=com.asiainfo.maks.webservices.pbosswebclient -----指定生成的四個文件的存放位置 %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% ----- 默認http://10.10.146.82:8080/esop_dev/services/GroupInfoService?wsdl -----指定wsdl文件的路徑

第二步:用genclient.bat生成四個客戶端類

雙擊編譯好的bat文件,執行后生成的四個java類如下:

使用axis開發webservice詳解

第三步:寫測試類調用webservice

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
  1. package test.webserviceclient;
  2. import java.net.MalformedURLException;
  3. import java.net.URL;
  4. import java.rmi.RemoteException;
  5. import javax.xml.rpc.ParameterMode;
  6. import javax.xml.rpc.ServiceException;
  7. import org.apache.axis.client.Call;
  8. import org.apache.axis.encoding.XMLType;
  9. public class Test {
  10. /**
  11. * 通過genClient.bat文件生成的webservice客戶端調用webservice服務的步驟如下:
  12. * 先介紹創建的四個文件分別為:
  13. * IBbossGroupInfoServiceImpl 定義了web服務接口,
  14. * IBbossGroupInfoServiceImplService 定義了用戶獲取web服務接口的方法
  15. * IBbossGroupInfoServiceImplServiceLocator 接口IBbossGroupInfoServiceImplService的具體實現
  16. * GroupInfoServiceSoapBindingStub web服務客戶端樁,通過該類與服務器交互,該類實現了IBbossGroupInfoServiceImpl接口
  17. * 1.創建service對象
  18. * 2.創建url對象
  19. * 3.創建client對象
  20. * 4.調用webservice的方法
  21. */
  22. public static void test1() {
  23. // 1.創建一個service對象
  24. IBbossGroupInfoServiceImplService service = new IBbossGroupInfoServiceImplServiceLocator();
  25. try {
  26. // 2.創建一個URL對象,傳入wsdl的地址夠過URL的構造方法創建
  27. String wsdlUrl = “http://10.10.146.82:8080/esop_dev/services/GroupInfoService?wsdl”;
  28. URL url = new URL(wsdlUrl);
  29. // 3創建一個client對象
  30. IBbossGroupInfoServiceImpl client = service
  31. .getGroupInfoService(url);
  32. // 4調用webservice的方法
  33. long groupNo = 2100000014L;
  34. String res = client.groupInfo(groupNo);
  35. System.out.println(res);
  36. } catch (MalformedURLException e) {
  37. e.printStackTrace();
  38. } catch (ServiceException e) {
  39. e.printStackTrace();
  40. } catch (RemoteException e) {
  41. e.printStackTrace();
  42. }
  43. }
  44. public static void main(String[] args) {
  45. test1();
  46. }
  47. }
 

對這種生成客戶端四個類的情況我要說明下,還有通過wsdltojava命令的方式生成客戶端類,但是這個都是一種通過axis調用webservice的方式,既然有工具我們為什么不用呢?

所以能使用wsdltojava命令的方式,我就不介紹了。

test result:

代碼的測試截圖我就不貼了,感興趣的可以試試看。

《!–好久沒有上來活動了,今天寫的是最近用到的一個東東,本人也是個菜鳥,剛剛在項目中用到webservice,如果有不對的,請各位大俠指正。–》

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
国产亚洲精品自拍| av最新在线| 欧美aⅴ一区二区三区视频| 黄色在线一区| 精品中文一区| 亚洲午夜av| 亚洲黄色影院| 成人在线超碰| 日产精品一区二区| 国产suv精品一区| 波多野结衣久久精品| 欧美日韩精品免费观看视欧美高清免费大片| 国产毛片一区二区三区| 国产精品一国产精品k频道56| 国产剧情在线观看一区| 欧美日韩一视频区二区| 国产精品一站二站| 国产精品手机在线播放| 美女视频黄免费的久久| 黄色在线网站噜噜噜| 美女久久久久| 日韩精品久久久久久| 亚洲欧洲国产精品一区| 国产精品成人国产| 91精品一区二区三区综合| 国产精品亚洲四区在线观看| 国产精品最新| 欧美男人天堂| 香蕉久久久久久| 成人台湾亚洲精品一区二区| 亚洲激情婷婷| 精品国产亚洲一区二区三区大结局| 国产在线|日韩| 69堂免费精品视频在线播放| 日韩网站中文字幕| 国产亚洲观看| 天堂va蜜桃一区二区三区| 欧美日韩午夜| 青青青国产精品| 香蕉久久精品| 国产亚洲精品美女久久 | 日韩二区三区在线观看| 美女毛片一区二区三区四区最新中文字幕亚洲 | 麻豆精品视频在线| 国产亚洲精品v| 福利在线一区| 午夜精品亚洲| 日本成人精品| 久久精品系列| 五月综合激情| 国产精品极品国产中出| 91免费精品| 日本精品另类| 久久久久国产| 久久精品亚洲| 久久香蕉网站| 精品久久亚洲| 精品国产乱码久久久| 国产va免费精品观看精品视频| 精品精品国产三级a∨在线| 夜久久久久久| 91久久久精品国产| 欧美影院精品| 美美哒免费高清在线观看视频一区二区 | 精品国产a一区二区三区v免费| 日本不良网站在线观看| 日韩精品一二区| 高清日韩欧美| 国产视频网站一区二区三区| 成人久久一区| 精品日本视频| 欧美午夜三级| 亚洲欧美一区在线| 成人精品动漫一区二区三区| 日韩福利一区| 日韩电影免费在线观看| 久久精品国产99| 国产精品一级在线观看| 人人精品久久| 欧美久久久网站| 丝袜av一区| 免费视频一区三区| 亚洲国产专区| 激情综合网五月| 欧美啪啪一区| 亚洲精品国产偷自在线观看| 蜜桃一区二区三区| 在线看片国产福利你懂的| 丝袜美腿亚洲一区| 一区二区三区四区日本视频| 成人福利av| 日韩欧美2区| 婷婷成人av| 国产欧美三级| 亚洲综合日韩| 欧美日韩一区二区三区不卡视频| 国产午夜精品一区在线观看| 成人午夜在线| 国产精品调教| 亚洲成人精选| 免费看日韩精品| 捆绑调教日本一区二区三区| 美女精品在线| 99精品99| 久久精品电影| 久久亚洲国产精品尤物| 欧美日中文字幕| 天海翼亚洲一区二区三区| 国产精品黄色片| 欧美激情国产在线| 伊人网在线播放| 精品高清久久| 极品日韩av| 美女被久久久| 噜噜噜久久亚洲精品国产品小说| 日韩不卡在线观看日韩不卡视频| 色婷婷成人网| 精品一二三区| 精品亚洲美女网站| 国产日韩欧美一区二区三区| 日韩三区在线| 午夜欧美理论片| 亚州精品视频| 日韩激情一区二区| 国产综合婷婷| 国产精品一区免费在线| 日本午夜精品久久久| 日本亚洲视频| 99精品在线观看| 免费精品国产的网站免费观看| 老司机精品视频网| 亚洲欧美日韩国产综合精品二区| 国产精品丝袜在线播放| 香蕉成人久久| 欧美日韩四区| 免费人成黄页网站在线一区二区| 亚洲一区二区小说| 日韩欧美另类中文字幕| 欧美视频二区| 三级一区在线视频先锋| 久久久久久久久99精品大| 久久成人亚洲| 国产亚洲毛片在线| 中文字幕av亚洲精品一部二部| 亚洲精品小说| 麻豆91精品| 免费不卡在线视频| 亚洲精品免费观看| 天堂久久av| 久久女人天堂| 免费精品视频最新在线| 久久精品网址| 精品日韩一区| 视频一区二区三区中文字幕| 97久久超碰| 亚洲欧美日韩高清在线| 精品一区视频| 亚洲精品日韩久久| 九九综合九九| 久久精品国产亚洲一区二区三区| 国产午夜久久| 亚洲v在线看| 波多野结衣久久精品| 91精品一区| 美女精品一区| 亚洲欧美日韩精品一区二区| 亚洲男女av一区二区| 亚洲在线成人| 国产精品久久久久久久久久白浆| 国产午夜久久av| 日韩精品一区第一页| 日韩精品一级二级| 伊人影院久久| 国产伦精品一区二区三区视频| 日韩午夜电影| 99精品电影| 99视频精品全国免费| 欧美va天堂在线| 亚洲精品在线二区| 色偷偷色偷偷色偷偷在线视频| 亚洲欧美一级| 最新中文字幕在线播放| 蜜桃91丨九色丨蝌蚪91桃色| 美女精品网站| 麻豆精品蜜桃| 麻豆一区二区三| 日韩在线第七页| 免费污视频在线一区| 亚洲激情社区| 久久久一二三| 中国字幕a在线看韩国电影| 麻豆成人av在线| 日韩av网站免费在线| 在线亚洲人成| 国产伊人精品| 综合一区av| 国产亚洲久久| 精品国产亚洲日本| 激情五月色综合国产精品| 蜜臀久久99精品久久久久宅男|