久久精品五月,日韩不卡视频在线观看,国产精品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综合
人在线成免费视频| 91成人网在线观看| 一区二区三区四区日韩| 免费久久精品| 久久久久午夜电影| 99精品在线观看| 日韩中文影院| 中文在线资源| 日韩欧美一区二区三区在线视频| 国产成年精品| 精品国产乱码久久久久久樱花| 久久99久久久精品欧美| 中文无码日韩欧| 婷婷综合国产| 91亚洲精品在看在线观看高清| 日韩国产欧美在线视频| 日本午夜精品视频在线观看| 日韩极品在线观看| 日韩激情中文字幕| 欧美日韩亚洲一区在线观看| 69堂免费精品视频在线播放| 国产欧美69| 麻豆久久久久久| 丰满少妇一区| 日韩精品一区二区三区免费观看| 久久久久国产| 国产婷婷精品| 国产美女一区| 日韩精品免费观看视频| 国产日产精品_国产精品毛片 | 日韩 欧美一区二区三区| 青草国产精品久久久久久| 国产精品久久| xxxxx性欧美特大| 欧洲av不卡| 亚洲欧美日韩专区| 国产日产精品_国产精品毛片| 国产一区福利| 亚洲经典在线| 国产日韩欧美中文在线| 国产v综合v| 亚洲小说春色综合另类电影| 美女视频黄久久| 亚洲二区视频| 欧美日韩va| 久久理论电影| 国产探花一区在线观看| 日韩中文字幕高清在线观看| 亚洲一区二区三区无吗| 国产精品主播| 久久久成人网| 在线亚洲自拍| 国产欧美精品| 里番精品3d一二三区| 四虎4545www国产精品 | 亚洲国产日韩欧美在线| 在线亚洲欧美| 日韩不卡一区二区三区| 久久精品理论片| 青青青免费在线视频| 欧美午夜不卡| 日韩高清欧美激情| 精品99在线| 黄色成人精品网站| 日本成人一区二区| 久久天堂影院| 免费视频国产一区| 天堂av一区| 黑人精品一区| 免费精品视频在线| 国产女人18毛片水真多18精品| 国产传媒在线| 蜜桃视频在线观看一区| 玖玖精品视频| 精品国产18久久久久久二百| 免费污视频在线一区| 亚洲美洲欧洲综合国产一区| 日韩高清国产一区在线| 国产videos久久| 影院欧美亚洲| 欧美片网站免费| 日韩欧美一区二区三区在线观看| 先锋影音久久久| 久久wwww| 夜久久久久久| 国产精品亚洲欧美日韩一区在线| 欧美一区三区| 国产精品亚洲人成在99www| 日韩大片在线| 欧美日韩在线精品一区二区三区激情综合| 久久中文字幕一区二区| 久久一区二区三区电影| 欧美视频二区| 午夜日韩av| 久久婷婷国产| 亚洲永久精品唐人导航网址| 色乱码一区二区三区网站| 石原莉奈在线亚洲三区| 欧美黑人巨大videos精品| 欧美日韩激情| 精品一区电影| 蜜桃久久精品一区二区| 国产精品99一区二区三| 蜜臀精品久久久久久蜜臀| 国产精品videosex极品| 久久国产日韩| 国产探花在线精品一区二区| 中文日韩欧美| 国产伦理一区| 9国产精品视频| 国产成人免费精品| 91精品福利观看| 欧美日韩国产亚洲一区| 久久精品一区二区国产| 亚洲三级av| 狠狠久久婷婷| 欧美精品高清| 精品久久中文| 日韩国产在线一| 亚洲在线一区| av免费不卡国产观看| 91大神在线观看线路一区| 日韩欧美网址| 伊人久久视频| 国内揄拍国内精品久久| 亚洲精品国产精品粉嫩| 精品一区三区| 亚洲天堂av影院| 九九99久久精品在免费线bt| 日本一区福利在线| 国产视频一区欧美| 99久久久久| 日韩一区三区| 精品一区二区三区中文字幕视频 | 国产成人久久精品麻豆二区 | 亚洲黄色网址| 麻豆久久一区| 国产情侣久久| 亚洲a级精品| 蜜桃av一区| 亚洲视频综合| 999久久久91| av亚洲一区二区三区| 国产精品蜜月aⅴ在线| 欧美影院视频| 亚洲毛片在线| 日韩在线卡一卡二| 91久久黄色| 伊人成人网在线看| 在线看片不卡| 亚洲一区成人| 美女被久久久| 日韩制服丝袜先锋影音| 亚洲综合电影一区二区三区| 欧美日中文字幕| 石原莉奈在线亚洲三区| 久久午夜影视| 中文字幕日韩亚洲| 久久高清一区| 视频一区二区三区中文字幕| 欧美在线综合| 蜜臀va亚洲va欧美va天堂| 热久久国产精品| 在线观看视频免费一区二区三区| 六月丁香综合| 蜜桃免费网站一区二区三区| 丝袜国产日韩另类美女| 亚洲综合色婷婷在线观看| 噜噜噜久久亚洲精品国产品小说| 午夜久久久久| 丝袜国产日韩另类美女| 亚洲午夜免费| 欧美日韩一区二区三区四区在线观看| 日韩精品一二三四| 亚洲午夜久久| 欧美日一区二区三区在线观看国产免| 国产无遮挡裸体免费久久| 免费在线欧美黄色| 国产一区二区三区黄网站| 吉吉日韩欧美| 黄色成人在线网址| 亚洲日产国产精品| 国产欧美日韩视频在线| 精品国产乱码久久久| 久久精品网址| 91精品国产成人观看| 亚洲经典在线| 日韩精品久久久久久久软件91| 欧美激情在线精品一区二区三区| 国产精品mv在线观看| 超级白嫩亚洲国产第一| 在线成人动漫av| 蜜臀av亚洲一区中文字幕| 欧美另类中文字幕 | 91精品国产成人观看| 9色精品在线| 91欧美极品| 91日韩在线| 中文在线不卡| 日韩av字幕|