国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Axis1.4框架實現(xiàn)webservice服務(wù)器和客戶端

2019-11-14 14:50:26
字體:
供稿:網(wǎng)友

一:提前準(zhǔn)備

  1. Win7旗艦版, Eclipse,JDK1.6,tomcat6.0,Axis1.4的包。 至于Axis1.4包網(wǎng)上可以下載,如果是在找不到可以留言給我。

二:摘要

將解壓后的 axis-1_4/webapps/下的axis 目錄考到 %TOMCAT_HOME%/Webapps/ 目錄下
啟動tomcat后在瀏覽器里輸入 http://localhost:8080/axis 會看到下圖所示

點擊上圖中的 Validataion 鏈接,頁面上會提示已經(jīng)有的包和缺少的包的信息,根據(jù)提示將必須的包下載全,將這些類包復(fù)制到 %tomcathome%/webapps/axis/WEB-INF/lib/目錄下重新啟動tomcat,直到Validation頁面中看不到有Error與Warning的提示信息。

Axis支持三種web service的客戶端訪問方式,分別為:

    • Dynamic Invocation Interface ( DII)
    • Dynamic PRoxy方式
    • Stubs方式

PS:看到很多資料將上述方式列為Web Servcie的三種“部署和開發(fā)方法,個人覺得有些欠妥

下面介紹axis部署和發(fā)布web service的方式:

    • JWS  - 即時發(fā)布
    • WSDD  –定制發(fā)布

三:JWS --即時發(fā)布

 JWS(java WebService)是最簡單的一種方式。Axis允許把普通Java類的源文件的擴展名改為.jws,然后把它簡單的copy到AXIS_HOME下。這樣,Axis 會自動編譯.jws文件,
 并把它自動加入到Java Web Servie的服務(wù)中。非常簡單和靈活,但是這種方式的缺點是:只能是java源代碼,同時類中不能含有包名。具體過程如下

1. 用Eclipse或者文本編輯器編寫一個java類 SayHello.java(此類不含包名)

 public class SayHello {     public String sayMsg(String name){         return "Hello: "+name;     } }

  2. 將上面的類(SayHello.java)copy到 %tomcat_home%/webapps/axis/ 目錄下,只需要把類的源文件(不是class)到這個目錄下,重命名為:SayHello.jws

3. 打開瀏覽器輸入: http://localhost:8080/axis/SayHello.jws 會看到:

點擊上圖  Click to see the WSDL 的鏈接,就可以看到生成的wsdl。

4. 使用 Dynamic Invocation Interface ( DII) 方式訪問客戶端 實現(xiàn)如下:

package client;import org.apache.axis.client.Call;import org.apache.axis.client.Service;public class TestClient {    /**     * @see axis框架實現(xiàn)簡單的 webService客戶端, 讀webServicez服務(wù)器內(nèi)容,如果有問題請留言     * @param webUrl 設(shè)置調(diào)用的wsdl路徑, 即訪問的路徑     * @param method 設(shè)置調(diào)用的方法名     * @param parameters 設(shè)置調(diào)用的方法的參數(shù)     * @author 鄧龍勝(微信simpledls)     * @throws Exception     */    public static void readerWebserviceContent(String webUrl,String method,Object[] parameters) throws Exception {                Service service = new Service();        Call call = (Call) service.createCall();        // 這里是要調(diào)用的方法名        call.setOperationName(method);        // 設(shè)置調(diào)用的wsdl路徑, 即訪問的路徑        call.setTargetEndpointAddress(webUrl);        // parameters 是為方法傳遞參數(shù), 必須和調(diào)用的方法體的參數(shù)類型和數(shù)量一致        String val = (String) call.invoke(parameters);        System.out.println("這是webservice服務(wù)器返回的信息:/n" + val);    }            /**     * @param args     * @throws Exception     */    public static void main(String[] args) throws Exception {        String webUrl = "http://192.168.1.121:8080/axis/SayHello.jws";        String method = "sayMsg";        Object[] parameters= new Object[] { "axis web service" };        TestClient.readerWebserviceContent(webUrl, method, parameters);    }}

 

四:WSDD(Web Service Deployment Descriptor)文件發(fā)布Web Service

  1. 為了使大家懂的如何映射實體類,故下文我將用 實體類(javaBean) 作為參數(shù)的方式引導(dǎo)大家,那么先在項目中新建一個JavaBean: UserBean.java 代碼如下:
package wsaxis.bean;public class UserBean {        private String userName; //姓名    private Integer age;     //年齡     public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    } }

2. 創(chuàng)建一個 MessageService.java 類, 代碼如下:

package wsaxis;import wsaxis.bean.UserBean;public class MessageService {     /**     * UserBean 作為參數(shù)*/    public String getBeanStr(UserBean bean) {        return "You Name:" + bean.getUserName() + " , You Age:" + bean.getAge();    }}

3. 創(chuàng)建一個 deploy.wsdd 文件, 該文件主要用于生成發(fā)布文件 server-config.wsdd ,  在項目中依次點擊: new --> other -->file  內(nèi)容如下:

<deployment name="test" xmlns="http://xml.apache.org/axis/wsdd/"    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  <service name="MessageService" provider="java:RPC" style="rpc" use="encoded">    <parameter name="className" value="wsaxis.MessageService"/>    <parameter name="allowedMethods" value="*"/>         <typeMapping xmlns:ns1="http://wsaxis.michael.com" qname="ns1:userBean"             type="java:wsaxis.bean.UserBean"             serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"             deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"       />  </service></deployment>

上面要注意: value="wsaxis.MessageService" , 這個 MessageService 就是你創(chuàng)建的那個 MessageService.java路徑一定不要搞錯 !

       type="java:wsaxis.bean.UserBean", 這個 UserBean 就是你創(chuàng)建的那個 UserBean.java路徑一定不要搞錯 !

4. 創(chuàng)建一個 undeploy.wsdd 文件, 該文件主要用于取消發(fā)布 web service , 創(chuàng)建方法同上。 其內(nèi)容如下

<undeployment    xmlns="http://xml.apache.org/axis/wsdd/">  <!-- Services from MessageService WSDL service -->  <service name="MessageService"/></undeployment>

5. 將上面寫好的兩個類已編譯好的class文件復(fù)制到 %tomcat_home%/axis/WEB-INF/class/ 目錄下,(注意:要完整的目錄結(jié)構(gòu)復(fù)制過來),然后在把兩個wsdd文件復(fù)制到%tomcat_home%/axis/WEB-INF/ 目錄下,打開cmd進入 %tomcat_home%/axis/WEB-INF/ 目錄下:

java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -p 8080 deploy.wsdd 

java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -p 8080 -s /axis/servlet/AxisServlet deploy.wsdd

java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient –lhttp://localhost:8080/axis/services/MessageService deploy.wsdd

分別用CMD 輸入如上命令,如果成功系統(tǒng)會提示如下:

Processing file deploy.wsdd
<Admin>Done processing</Admin>

(有可能第三條不成功,但是沒關(guān)系,主要看下 %tomcat_home%/axis/WEB-INF/  目錄下是否已經(jīng)生成 server-config.wsdd 文件) , 如果有此文件 則在瀏覽器輸入

http://localhost:8082/axis/services/MessageService   會看到下圖

 

 

已下班 ... 后續(xù)繼續(xù)跟新 !!

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁强县| 阜城县| 东乌珠穆沁旗| 临海市| 诸城市| 武义县| 特克斯县| 萨嘎县| 甘德县| 扬中市| 当阳市| 班玛县| 张家界市| 肇庆市| 吉安市| 大丰市| 安国市| 泽普县| 新津县| 灵璧县| 旬邑县| 汤阴县| 额敏县| 淮南市| 灵川县| 台北县| 阿拉善左旗| 颍上县| 多伦县| 靖江市| 平舆县| 滕州市| 鸡西市| 满洲里市| 阳信县| 兰州市| 江阴市| 夏邑县| 榆林市| 汶川县| 眉山市|