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

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

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

    軟件環(huán)境

    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程序發(fā)布

    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、 配置環(huán)境變量

    AXIS_HOME?。健xis-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、 編寫發(fā)布文件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" />

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

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

    ? </service>

    ?

    </deployment>

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

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

    deploy.wsdd文件轉(zhuǎn)變?yōu)閟erver-config.wsdd(其實同時還生成attachments文件夾),這樣在tomcat啟動時可以被AxisServlet調(diào)用初始化。注意:使用命令時tomcat應(yīng)處于啟動狀態(tài)。

    5、 發(fā)布完畢,在瀏覽器地址欄輸入http://localhost:8080/axis/services可以看到你發(fā)布的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" />

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

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

    ?? ?<!--指定可以調(diào)用用戶-->

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

    ??? <requestFlow>?????

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

    ??? ?</requestFlow>

    ? </service>

    ?

    </deployment>

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

    testname testpass

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

    4、 修改客戶端調(diào)用程序

    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);

    ??? }

    }

    ?

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

    ?

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

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

    QQ:303901823
    Mail:ling0725@126.com  回復(fù)  更多評論
      
    # 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都已經(jīng)在

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

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

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 美女内射无套日韩免费播放| 亚洲国产老鸭窝一区二区三区 | 成人免费视频88| 国产免费网站看v片在线| 成人精品国产亚洲欧洲| 亚洲六月丁香六月婷婷蜜芽| 国产亚洲欧洲Aⅴ综合一区| 全免费a级毛片免费看不卡| 永久在线免费观看| 黄页免费在线观看| 国产99久久久国产精免费| 在线视频亚洲一区| 亚洲女子高潮不断爆白浆| 亚洲成人动漫在线观看| 亚洲一区二区三区夜色| 久久精品国产亚洲网站| 国产av无码专区亚洲av果冻传媒| 日韩视频免费一区二区三区| 可以免费看的卡一卡二| 青娱乐免费在线视频| www视频免费看| 在免费jizzjizz在线播| 97视频免费观看2区| 无码少妇精品一区二区免费动态| 97在线免费视频| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 日本一道综合久久aⅴ免费| 无限动漫网在线观看免费| 一级女人18毛片免费| 永久在线免费观看| 黄色网址免费大全| 久草视频免费在线| 黄页免费的网站勿入免费直接进入| 四虎成年永久免费网站| 日本免费xxxx| 岛国av无码免费无禁网站| 三年片在线观看免费观看高清电影| 美女视频黄的全免费视频| 一个人看的www在线观看免费| 一二三四免费观看在线视频中文版 | A级毛片成人网站免费看|