<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    軟件環境

    1、? Windows 2000 professional sp4

    2、? axis-1_3 (http://ws.apache.org/axis/下載);

    3、? tomcat-5.0.28;

    4、? jdk1.4.2

    Axis的測試demo

    axis-bin-1_3.zip解壓的webapps目錄下的axis目錄拷貝到%TOMCAT_HOME%\webapps目錄下(最好在%TOMCAT_HOME%\webapps\axis\WEB-INF\lib增加:activation.jar、mail.jar和tools.jar),然后啟動tomcat,在瀏覽器地址欄輸入http://localhost:8080/axis/就可以看到axis的主頁面了。

    Webservice程序發布

    1、編寫簡單的webservice程序如下:

    package test.webservice;

    ?

    public class Calculator {

    ??? public int add(int i1, int i2) {

    ??????? return i1 + i2;

    ??? }

    ?

    ??? public int subtract(int i1, int i2) {

    ??????? return i1 - i2;

    ??? }

    ?

    ??? public String show(String arg) {

    ??????? return arg;

    ??? }

    }

    1、 將程序包拷貝到%TOMCAT_HOME%\webapps\axis\WEB-INF\classes目錄下;

    2、 配置環境變量

    AXIS_HOME = axis-bin-1_3.zip的解壓路徑

    AXISCLASSPATH = %AXIS_HOME%\lib\axis.jar;%AXIS_HOME%\lib\axis-schema.jar;%AXIS_HOME%\lib\commons-discovery-0.2.jar;%AXIS_HOME%\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\lib\jaxrpc.jar;%AXIS_HOME%\lib\log4j-1.2.8.jar;%AXIS_HOME%\lib\saaj.jar;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar;

    3、 編寫發布文件deploy.wsdd(該文件的模板可以從%AXIS_HOME%\samples\stock目錄下找到),將其放到%TOMCAT_HOME%\webapps\axis\WEB-INF目錄下;

    <deployment name="test" xmlns="http://xml.apache.org/axis/wsdd/"

    ??? xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

    ?

    ? <service name="Calculator" provider="java:RPC">

    ? ? <!--指定作為webservice的類名-->

    ??? <parameter name="className" value="test.webservice.Calculator" />

    ??? <!--指定可以被調用的方法,有選擇使用逗號間隔,全部使用*-->

    ??? <parameter name="allowedMethods" value="add,subtract,show" />???

    ? </service>

    ?

    </deployment>

    4、 命令行方式轉到%TOMCAT_HOME%\webapps\axis\WEB-INF目錄下,使用命令:

    java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost/axis/services/AdminService deploy.wsdd

    deploy.wsdd文件轉變為server-config.wsdd(其實同時還生成attachments文件夾),這樣在tomcat啟動時可以被AxisServlet調用初始化。注意:使用命令時tomcat應處于啟動狀態。

    5、 發布完畢,在瀏覽器地址欄輸入http://localhost:8080/axis/services可以看到你發布的webservice了,可以查看具體的wsdl。

    6、 java客戶端測試程序

    package test.webservice;

    ?

    import javax.xml.rpc.ParameterMode;

    import javax.xml.rpc.encoding.XMLType;

    ?

    import org.apache.axis.client.Call;

    import org.apache.axis.client.Service;

    ?

    public class CalcClient {

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

    ??????? String endpoint = "http://localhost:8080/axis/services/Calculator";

    ?

    ??????? Service service = new Service();

    ??????? Call call = (Call) service.createCall();

    ?

    ??????? call.setTargetEndpointAddress(new java.net.URL(endpoint));

    ??????? // call.setOperationName("add");

    ??????? call.setOperationName("subtract");

    ??????? // call.setOperationName("show");

    ?

    ??????? call.addParameter("p1", XMLType.XSD_INT, ParameterMode.IN);

    ??????? call.addParameter("p2", XMLType.XSD_INT, ParameterMode.IN);

    ??????? call.setReturnType(XMLType.XSD_INT);

    ?

    ??????? Integer ret = (Integer) call.invoke(new Object[] { new Integer(5), new Integer(3) });

    ??????? // String ret = (String) call.invoke(new Object[] { "axis你好!" });

    ?

    ??????? System.out.println("The value of webservice return is :" + ret);

    ??? }

    }

    ?

    添加用戶驗證

    用戶驗證使用axis的簡單用戶驗證handler:SimpleAuthenticationHandler。

    1、 deploy.wsdd文件中增加以下紅色字體部分

    <deployment name="test" xmlns="http://xml.apache.org/axis/wsdd/"

    ??? xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

    ?

    ? <service name="Calculator" provider="java:RPC">

    ? ? <!--指定作為webservice的類名-->

    ??? <parameter name="className" value="test.webservice.Calculator" />

    ??? <!--指定可以被調用的方法,有選擇使用逗號間隔,全部使用*-->

    ??? <parameter name="allowedMethods" value="add,subtract,show" />

    ?? ?<!--指定可以調用用戶-->

    ??? <parameter name="allowedRoles" value="testname" />????

    ??? <requestFlow>?????

    ??? ??? <handler type="Authenticate"/>

    ??? ?</requestFlow>

    ? </service>

    ?

    </deployment>

    2、 %TOMCAT_HOME%\webapps\axis\WEB-INF目錄下建立users.lst文件,內容如下:

    testname testpass

    3、 重復 Webservice 程序發布的第4步,重新發布(也可以直接修改 server-config.wsdd文件 )。

    4、 修改客戶端調用程序

    package test.webservice;

    ?

    import javax.xml.rpc.ParameterMode;

    import javax.xml.rpc.encoding.XMLType;

    ?

    import org.apache.axis.client.Call;

    import org.apache.axis.client.Service;

    ?

    public class CalcClient {

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

    ??????? String endpoint = "http://localhost:8080/axis/services/Calculator";

    ?

    ??????? Service service = new Service();

    ??????? Call call = (Call) service.createCall();

    ???????

    ??????? // 用戶驗證

    ??????? call.getMessageContext().setUsername("testname"); // 用戶名

    ??????? call.getMessageContext().setPassword("testpass"); // 密碼

    ?

    ??????? call.setTargetEndpointAddress(new java.net.URL(endpoint));

    ??????? // call.setOperationName("add");

    ??????? call.setOperationName("subtract");

    ??????? // call.setOperationName("show");

    ?

    ??????? call.addParameter("p1", XMLType.XSD_INT, ParameterMode.IN);

    ??????? call.addParameter("p2", XMLType.XSD_INT, ParameterMode.IN);

    ??????? call.setReturnType(XMLType.XSD_INT);

    ?

    ??????? Integer ret = (Integer) call.invoke(new Object[] { new Integer(5), new Integer(3) });

    ??????? // String ret = (String) call.invoke(new Object[] { "axis 你好! " });

    ?

    ??????? System.out.println("The value of webservice return is :" + ret);

    ??? }

    }

    ?

    本例程在上述軟件環境上測試通過,源碼下載: axisdemo

    ?

    posted on 2006-05-06 20:31 野草 閱讀(3546) 評論(3)  編輯  收藏 所屬分類: axis

    評論:
    # re: axis使用筆記 2007-07-09 16:17 | 凌觀生
    這已經是第五次用你的網頁的,你的筆記很有用啊,但不知道你的QQ或Email是多少,有機會直接向你提問就好了問

    QQ:303901823
    Mail:ling0725@126.com  回復  更多評論
      
    # re: axis使用筆記 2007-07-10 10:09 | 凌觀生
    老提示這個:
    Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled
    配置文件到底要怎么樣啊mail.jar、activation.jar都已經在

    CLASSPATH = .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%AXIS_HOME%\activation.jar;%AXIS_HOME%\mail.jar

    下了  回復  更多評論
      
    # re: axis使用筆記 2007-12-13 14:10 | guest
    嗯,通過setUserName之后,似乎在Auth的時候一直得不到用戶名/密碼的說.  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲图片激情小说| 911精品国产亚洲日本美国韩国| 亚洲激情视频图片| 97久久免费视频| 亚洲经典在线中文字幕| 鲁大师在线影院免费观看| 亚洲综合精品一二三区在线| 日韩精品无码一区二区三区免费| 久热综合在线亚洲精品| 日韩人妻一区二区三区免费| 日韩精品一区二区亚洲AV观看 | 一级毛片正片免费视频手机看 | 亚洲国产精品乱码在线观看97| **毛片免费观看久久精品| 亚洲无成人网77777| 好大好硬好爽免费视频| 亚洲 暴爽 AV人人爽日日碰| 日韩一区二区三区免费体验| 曰批免费视频播放免费| 区久久AAA片69亚洲| 一级成人a毛片免费播放| 亚洲无砖砖区免费| 国产无遮挡又黄又爽免费视频| 丰满少妇作爱视频免费观看| 亚洲av午夜福利精品一区 | 国产精品国产午夜免费福利看 | 午夜成人无码福利免费视频| 亚洲色精品88色婷婷七月丁香 | 性xxxx视频免费播放直播 | 亚洲精品无码av人在线观看| 99视频在线精品免费| 亚洲最大的成人网站| 亚洲成a人片在线观看久| 在线观看免费播放av片| 亚洲人成网站18禁止久久影院| 国产网站免费观看| 久久99毛片免费观看不卡| 亚洲综合一区二区三区四区五区| mm1313亚洲精品国产| 久久精品无码专区免费东京热 | 日韩视频免费在线|