<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 野草 閱讀(3547) 評論(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的時候一直得不到用戶名/密碼的說.  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲资源在线观看| 亚洲精品国产精品乱码不卡| 久久久久亚洲Av片无码v| aaa毛片免费观看| 亚洲日韩精品一区二区三区| www.xxxx.com日本免费| 亚洲精品视频在线观看你懂的| 大片免费观看92在线视频线视频| 亚洲精品99久久久久中文字幕| 美女18毛片免费视频| 亚洲国产精品丝袜在线观看| 午夜在线免费视频| 亚洲国产婷婷六月丁香| 99久久免费观看| 亚洲日韩亚洲另类激情文学| 国产极品粉嫩泬免费观看| 国内成人精品亚洲日本语音| 在线亚洲午夜理论AV大片| 嫩草在线视频www免费观看| 亚洲国产成人久久| 国产成人免费高清在线观看| 色吊丝免费观看网站| 国产亚洲一区二区三区在线| 13一14周岁毛片免费| 亚洲人成未满十八禁网站| 亚洲视频在线免费| 久久国产乱子免费精品| 亚洲日本久久久午夜精品 | 91手机看片国产永久免费| 中文日韩亚洲欧美制服| 免费人成无码大片在线观看| 国产一级在线免费观看| 亚洲小说区图片区| 波多野结衣免费视频观看| 日韩免费在线视频| 亚洲熟女www一区二区三区| 一本久久a久久精品亚洲| 在线视频精品免费| av成人免费电影| 亚洲人成黄网在线观看| 色噜噜AV亚洲色一区二区|