posts - 193,  comments - 520,  trackbacks - 0
           
               摘要: 這是AXIS學習筆記的最后一篇。在前面我們討論了最簡單的HelloWorld服務,客戶端并沒有向服務器端傳遞參數,現在我們來傳JavaBean。當然,也可以傳遞你自己定義的JAVA類,但那樣你必須自己創建專門的XML序列化器和反序列化器;而對JavaBean,AXIS提供了現成的序列化器。(有人說:懶惰是程序員最大的美德)    一、服務器端   1、...  閱讀全文
          posted @ 2007-06-12 16:25 ronghao 閱讀(5341) | 評論 (3)編輯 收藏
               摘要: 四、使用WS-Security規范對信息進行加密與身份認證     我們打算用Handler結合WSSecurity實現Web服務安全     設想流程:用WSClientRequestHandler.java位于客戶端對客戶端發出的XML文檔進行加密  WSServerRequestHandler.ja...  閱讀全文
          posted @ 2007-06-12 16:20 ronghao 閱讀(2257) | 評論 (4)編輯 收藏
               摘要: 在前面的文章中,我們實現了最簡單的AXIS服務。現在我們一起來討論一下Web服務的安全問題。 根據應用的對安全要求的級別不同,可以采用不同的方式來實現安全性,以下是目前最常用的一些實現方式(從低到高排列):     1、J2EE Web應用默認的訪問控制(數據是明文的);      2、使用a...  閱讀全文
          posted @ 2007-06-12 16:10 ronghao 閱讀(3946) | 評論 (4)編輯 收藏
               摘要: 原文作者: 陳亞強 原文鏈接:http://www.ibm.com/developerworks/cn/webservices/ws-handler/index.html 高級軟件工程師, 北京華園天一科技有限公司 2003 年 8 月  一、Handler的基本概念 J2EE Web 服務中的H...  閱讀全文
          posted @ 2007-06-12 16:01 ronghao 閱讀(3150) | 評論 (1)編輯 收藏

          一、軟件環境

           1
          axis-1_2  (apache網站下載最新axis-bin-1_2.zip解壓即可)

           2
          Tomcat5.0 

           3
          、JDK5.0

          二、相關配置

           1
          、在你的%TOMCAT_HOME%\common\lib下需要加入三個包 activation.jar、mail.jar、tools.jar

           2
          、環境變量設置

               AXIS_HOME 
          axis-bin-1_2.zip解壓的目錄(我的是在F:\soap\axis-1_2

               AXIS_LIB    
           %AXIS_HOME%\lib

              AXISCLASSPATH 
           %AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;

          %AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar;也就是把%AXIS_LIB%下所用JAR文件都導入

          三、實驗一下

             
          %AXIS_HOME%\webapps下找到axis文件夾,將其整個拷貝到%TOMCAT_HOME%\webapps下,啟動

            Tomcat,
          打開瀏覽器訪問http://localhost:8080/axis/,出現以下頁面說明你配置成功了。很簡單吧:)


          四、發布我們的第一個程序

             
          第一個程序簡單的返回HELLO WORLD!

           HelloWorld.java

          public class HelloWorld {
            
          public String sayHello()
            {
              
          return "HELLO WORLD!"
            } 
          }


          我們的第一種發布方式:

          HelloWorld.java拷貝到%TOMCAT_HOME%\webapps\axis下,然后將其改名為HelloWorld.jws,這樣AXIS就自然將其發布了?,F在寫個客戶端程序訪問一下:
          TestClient.java

          import org.apache.axis.client.Call;
          import org.apache.axis.client.Service;

          import javax.xml.rpc.ParameterMode;

          public class TestClient
          {
             
          public static void main(String [] args) throws Exception {
                 
                 String endpoint 
          = "http://localhost:" +"8080"+ "/axis/HelloWorld.jws";//指明服務所在位置

                 Service  service 
          = new Service();  //創建一個Service實例,注意是必須的!
                 Call     call    = (Call) service.createCall();//創建Call實例,也是必須的!

               call.setTargetEndpointAddress( 
          new java.net.URL(endpoint) );//為Call設置服務的位置

                  call.setOperationName( 
          "sayHello" );//注意方法名與HelloWorld.java中一樣?。?/span>

                   String res 
          = (String) call.invoke( new Object[] {} );//返回String,沒有傳入參數

                  System.out.println( res );
             }
          }


          我的測試是在jbuilder2005中,注意項目中要導入其自帶的AXIS包(當然應該把其中JAR文件替換一下),可以看到程序返回了 "HELLO WORLD!"

          可以看到在AXIS里發布服務其實是一件很容易的事,這是因為這個服務很簡單的原因:)下面我們介紹第二種發布方式,這是常用的。

          我們的第二種發布方式:

          1
          、將HelloWorld.java編譯成HelloWorld.class,放到%TOMCAT_HOME%\webapps\axis\WEB-INF\classes

          2
          、在%TOMCAT_HOME%\webapps\axis\WEB-INF下新建deploy.wsdd文件,即SOAP服務發布描述文件

               deploy.wsdd

          <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
              
          <service name="HelloWorld" provider="java:RPC">
                  
          <parameter name="className" value="HelloWorld"/>
                  
          <parameter name="allowedMethods" value="sayHello"/>
              
          </service>
          </deployment>


          DOS下轉換目錄到%TOMCAT_HOME%\webapps\axis\WEB-INF,命令:

          java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd

          你會發現目錄下多了一個server-config.wsdd文件,這就是AXIS的配置文件,以后所有的服務發布描述都會在里面找到。(當然,你可以直接修改它,不用再寫deploy.wsdd)然后打開瀏覽器http://localhost:8080/axis/servlet/AxisServlet,你就會看到你的服務已發布

          同樣用客戶端程序訪問一下:(注意和上邊的差別?。。?/span>
          HelloClient.java

          import org.apache.axis.client.Call;
          import org.apache.axis.client.Service;

          public class HelloClient
          {
             
          public static void main(String [] args) throws Exception {

                 String endpoint 
          = "http://localhost:" +"8080"+ "/axis/services/HelloWorld";//注意!差別僅僅在這里?。?/span>

                 Service  service 
          = new Service();
                 Call     call    
          = (Call) service.createCall();
                 call.setTargetEndpointAddress( 
          new java.net.URL(endpoint) );
                  call.setOperationName(
          "sayHello"  );

                   String res 
          = (String) call.invoke( new Object[] {} );

                                   System.out.println( res );
             }
          }

          posted @ 2007-06-12 15:48 ronghao 閱讀(2672) | 評論 (1)編輯 收藏
          僅列出標題
          共39頁: First 上一頁 21 22 23 24 25 26 27 28 29 下一頁 Last 
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          關注工作流和企業業務流程改進。現就職于ThoughtWorks。新浪微博:http://weibo.com/ronghao100

          常用鏈接

          留言簿(38)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          常去的網站

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 西乡县| 阳高县| 如东县| 南丹县| 澄城县| 黔西县| 抚远县| 怀远县| 琼结县| 临泉县| 湘潭市| 鹿邑县| 黄陵县| 常宁市| 公主岭市| 田林县| 临朐县| 敦化市| 宁都县| 河南省| 广德县| 元氏县| 元朗区| 汝阳县| 宁河县| 和田县| 仁怀市| 金坛市| 察雅县| 云浮市| 五峰| 青浦区| 崇州市| 峨边| 宜阳县| 广东省| 平昌县| 洛浦县| 葵青区| 阳城县| 汪清县|