codefans

          導航

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          程序設計鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          Axis開發之Stubs方式

          1、建立代理接口文件
          public interface ISendSms extends java.rmi.Remote {
              public String getUser(String id,String type);
          }

          轉到在目錄..\WebRoot\WEB-INF\classes下:

          2、生成client stub文件, 生成SendSms.wsdl文件
          java -Djava.ext.dirs=../lib org.apache.axis.wsdl.Java2WSDL -oSendSms.wsdl -lhttp://localhost:8080/websms/services/SendSms -n"urn:SendSms" -p"sample.webservice" "urn:SendSms" sample.webservice.ISendSms

          生成的SendSms.wsdl文件中,參數名稱默認為in1,in2等,需要改成相應的名稱。

          3、生成client stub
          java -Djava.ext.dirs=../lib org.apache.axis.wsdl.WSDL2Java -o . -d Session -s -S true -Nurn:SendSms sample.webservice SendSms.wsdl

          生成的文件列表如下:
          deploy.wsdd
          undeploy.wsdd
          ISendSms.java
          ISendSmsService.java
          ISendSmsServiceLocator.java
          SendSmsSoapBindingImpl.java
          SendSmsSoapBindingSkeleton.java
          SendSmsSoapBindingStub.java

          4、布署服務,在WEB-INF目錄下生成server-config.wsdd文件, 隨Tomcat啟動自動加載里面定義的服務
          轉到目錄..\WebRoot\WEB-INF\classes\sample\webservice下
          java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:8080/websms/services/AdminService deploy.wsdd

          在Axis里書寫deploy.wsdd并利用org.apache.axis.client.AdminClient發布,其主要工作就是把<service>標簽中的內容添加在server-config.wsdd里,所以一般直接編輯server-config.wsdd文件會更方便一些。不過當你還沒有server-config.wsdd文件時,使用deploy.wsdd的方法會更方便些,因為AdminClient會幫你生成一些額外的xml元素(<handler>等等),而這些元素是必要的。

          5、項目中加入Axis所需的包, web.xml加入相關定義
            <display-name>Apache-Axis</display-name>
            <servlet>
              <display-name>Apache-Axis Servlet</display-name>
              <servlet-name>AxisServlet</servlet-name>
              <servlet-class>
                  org.apache.axis.transport.http.AxisServlet
              </servlet-class>
            </servlet>
            <servlet>
              <display-name>Axis Admin Servlet</display-name>
              <servlet-name>AdminServlet</servlet-name>
              <servlet-class>
                  org.apache.axis.transport.http.AdminServlet
              </servlet-class>
              <load-on-startup>100</load-on-startup>
            </servlet>
            <servlet-mapping>
              <servlet-name>AxisServlet</servlet-name>
              <url-pattern>/services/*</url-pattern>
            </servlet-mapping>

          通過http://localhost:8080/websms/services/SendSms?wsdl來查看WSDL描述了

          6、測試代碼
          public static void main(String[] args) {
            try{
            /*ISendSmsService service = new ISendSmsServiceLocator();
             ISendSms sender = service.getSendSms();
             String result = sender.send("cid","cname");
             System.out.println("call result:"+result);*/
             String tvServiceURL = "http://localhost:8080/websms/services/SendSms"; //web service 地址
             java.net.URL endpointURL = new java.net.URL(tvServiceURL);
             String result = "ok";
             result = new SendSmsSoapBindingStub(endpointURL,null).send("id","cname");
             System.out.println("call result:"+result);
            }
            catch(Exception ex){
             ex.printStackTrace();
            }
           }

          我們還可以通過IE瀏覽器直接調用服務,方法是在服務URL后加“method=xxx”,其中xxx是要調用的方法名稱。例如可以通過http://localhost:8080/websms/services/SendSms?method=send&userId=uid&...調用方法。
          ====================================================================================
          另外,  也可能過新建一個deploy.wsdd文件,通過這個文件直接布署我們的服務
          java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/websms/services/SendSms deploy.wsdd
          // 它會在WEB-INF目錄生成server-config.wsdd文件, 若此文件已存在, 它會在文件加入當前服務的注冊。

          生成wsdl文件
          java -Djava.ext.dirs=../lib org.apache.axis.wsdl.Java2WSDL -oSendSms.wsdl -lhttp://localhost:8080/websms/services/SendSms -nsendsms sample.webservice.SendSms

          生成客戶端文件
          java -Djava.ext.dirs=../lib org.apache.axis.wsdl.WSDL2Java SendSms.wsdl -p client

          posted on 2006-02-25 11:09 春雷的博客 閱讀(290) 評論(0)  編輯  收藏 所屬分類: web service


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 乌苏市| 渝中区| 高邑县| 黄石市| 青海省| 南充市| 南安市| 竹山县| 施甸县| 巴中市| 阿坝县| 丘北县| 安岳县| 宁明县| 安乡县| 钟山县| 萍乡市| 无锡市| 芜湖县| 海淀区| 静宁县| 惠水县| 浦江县| 泗阳县| 黄龙县| 中牟县| 外汇| 曲松县| 漠河县| 会宁县| 兖州市| 安康市| 嘉善县| 岳阳市| 石泉县| 乌恰县| 宁国市| 宝山区| 平定县| 宜昌市| 南部县|