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

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

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

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業(yè)。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
    今天終于搞定,貼出來分享一下
    1、在www.apache.org上下載Axis1.4,將解壓后的Axis目錄文件復(fù)制到%TOMCATHOME%\webapps目錄下
    2、重新啟動Tomcat,訪問http://localhost:8080/axis,如果能訪問,表示Axis環(huán)境安裝成功
    3、在eclipse下建立webproject,將axis的jar包導(dǎo)入



    2JavaBean,分別叫做Person.javaBook.java,代碼如下
    Book.java
    package?com.lucky.axis.service;

    public?class?Book?{
    ????
    private?String?bookname;
    ????
    private?Long?isbn;
    ????
    private?float?price;
    ????
    private?Integer?pages;
    ????
    public?String?getBookname()?{
    ????????
    return?bookname;
    ????}

    ????
    public?void?setBookname(String?bookname)?{
    ????????
    this.bookname?=?bookname;
    ????}

    ????
    public?Long?getIsbn()?{
    ????????
    return?isbn;
    ????}

    ????
    public?void?setIsbn(Long?isbn)?{
    ????????
    this.isbn?=?isbn;
    ????}

    ????
    public?float?getPrice()?{
    ????????
    return?price;
    ????}

    ????
    public?void?setPrice(float?price)?{
    ????????
    this.price?=?price;
    ????}

    ????
    public?Integer?getPages()?{
    ????????
    return?pages;
    ????}

    ????
    public?void?setPages(Integer?pages)?{
    ????????
    this.pages?=?pages;
    ????}


    }



    Person.java
    package?com.lucky.axis.service;

    import?java.util.Map;

    public?class?Person?{
    ????
    private?String?name;
    ????
    private?int?age;
    ????
    private?Map?skill;
    ????
    private?Book?mybook;
    ????
    public?String?getName()?{
    ????????
    return?name;
    ????}

    ????
    public?void?setName(String?name)?{
    ????????
    this.name?=?name;
    ????}

    ????
    public?int?getAge()?{
    ????????
    return?age;
    ????}

    ????
    public?void?setAge(int?age)?{
    ????????
    this.age?=?age;
    ????}

    ????
    public?Map?getSkill()?{
    ????????
    return?skill;
    ????}

    ????
    public?void?setSkill(Map?skill)?{
    ????????
    this.skill?=?skill;
    ????}

    ????
    public?Book?getMybook()?{
    ????????
    return?mybook;
    ????}

    ????
    public?void?setMybook(Book?mybook)?{
    ????????
    this.mybook?=?mybook;
    ????}


    }



    ? 建立服務(wù)器端代碼,命名為PersonInfoService.java,實現(xiàn)三個method,分別為public String getPersonInfo(Person person)public Book setBookInfo(String bookname, Long isbn)public Person getPersonInfo(),以下為全部代碼:

    package?com.lucky.axis.service;

    import?java.util.HashMap;
    import?java.util.Map;

    public?class?PersonInfoService?{
    ????
    public?PersonInfoService()?{
    ????}


    ????
    public?String?getPersonInfo(Person?person)?{
    ????????String?personinfo?
    =?"";
    ????????personinfo?
    =?"Hello,?"?+?person.getName()
    ????????????????
    +?"?!?This?is?you?information\r\n";
    ????????personinfo?
    =?personinfo?+?"Ages:?"?+?person.getAge()?+?"\r\n";
    ????????Map?skill?
    =?person.getSkill();
    ????????String?strskill?
    =?"";
    ????????strskill?
    =?strskill?+?skill.get("NAME")?+?"?:?you?have?"
    ????????????????
    +?skill.get("YEAR")?+?"?years?experience!\r\n";
    ????????personinfo?
    =?personinfo?+?strskill;
    ????????personinfo?
    =?personinfo?+?"Book?Name?:?"
    ????????????????
    +?person.getMybook().getBookname()?+?"\r\n";
    ????????personinfo?
    =?personinfo?+?"ISBN?:?"
    ????????????????
    +?person.getMybook().getIsbn()?+?"\r\n";
    ????????personinfo?
    =?personinfo?+?"You?pay?$"
    ????????????????
    +?person.getMybook().getPrice()?+?"?for?this?book.\r\n";
    ????????personinfo?
    =?personinfo?+?"This?book?have?"
    ????????????????
    +?person.getMybook().getPages()?+?"?pages.\r\n";
    ????????
    return?personinfo;
    ????}


    ????
    public?Book?setBookInfo(String?bookname,?Long?isbn)?{
    ????????Book?book?
    =?new?Book();
    ????????book.setBookname(bookname);
    ????????book.setIsbn(isbn);
    ????????book.setPages(
    new?Integer(265));
    ????????book.setPrice((
    float)?25.65);
    ????????
    return?book;
    ????}


    ????
    public?Person?getPersonInfo()?{
    ????????Person?person?
    =?new?Person();
    ????????person.setName(
    "Aaron");
    ????????person.setAge(
    26);
    ????????Map?skill?
    =?new?HashMap();
    ????????skill.put(
    "NAME",?"JAVA");
    ????????skill.put(
    "YEAR",?"3");
    ????????person.setSkill(skill);
    ????????Book?book?
    =?new?Book();
    ????????book.setBookname(
    "<Thinking?in?Java>");
    ????????book.setIsbn(
    new?Long(456256821));
    ????????book.setPages(
    new?Integer(982));
    ????????book.setPrice((
    float)?99.8);
    ????????person.setMybook(book);
    ????????
    return?person;
    ????}


    }


    將編譯好的Java類直接放在%Tomcat%\webapps\axis\WEB-INFO\classess\目錄下。注意將整個包路徑復(fù)制到上述目錄中





    在%Tomcat%\webapps\axis\WEB-INF\classes目錄下建立 server-config.wsdd 文件,內(nèi)容如下
    <?xml?version="1.0"?encoding="UTF-8"?>
    <deployment?xmlns="http://xml.apache.org/axis/wsdd/"
    ????xmlns:java
    ="http://xml.apache.org/axis/wsdd/providers/java">
    ????
    <globalConfiguration>
    ????????
    <parameter?name="sendMultiRefs"?value="true"?/>
    ????????
    <parameter?name="disablePrettyXML"?value="true"?/>
    ????????
    <parameter?name="adminPassword"?value="admin"?/>
    ????????
    <parameter?name="attachments.Directory"
    ????????????value
    ="C:\Tomcat?5.0?(iplanetldap)\webapps\axis\WEB-INF\attachments"?/>
    ????????
    <parameter?name="axis.servicesPath"?value="/mossWS/"?/>
    ????????
    <parameter?name="dotNetSoapEncFix"?value="true"?/>
    ????????
    <parameter?name="enableNamespacePrefixOptimization"
    ????????????value
    ="false"?/>
    ????????
    <parameter?name="sendXMLDeclaration"?value="true"?/>
    ????????
    <parameter?name="sendXsiTypes"?value="true"?/>
    ????????
    <parameter?name="attachments.implementation"
    ????????????value
    ="org.apache.axis.attachments.AttachmentsImpl"?/>
    ????????
    <requestFlow>
    ????????????
    <handler?type="java:org.apache.axis.handlers.JWSHandler">
    ????????????????
    <parameter?name="scope"?value="session"?/>
    ????????????
    </handler>
    ????????????
    <handler?type="java:org.apache.axis.handlers.JWSHandler">
    ????????????????
    <parameter?name="scope"?value="request"?/>
    ????????????????
    <parameter?name="extension"?value=".jwr"?/>
    ????????????
    </handler>
    ????????
    </requestFlow>
    ????
    </globalConfiguration>
    ????
    <handler?name="Authenticate"
    ????????type
    ="java:org.apache.axis.handlers.SimpleAuthenticationHandler"?/>
    ????
    <handler?name="LocalResponder"
    ????????type
    ="java:org.apache.axis.transport.local.LocalResponder"?/>
    ????
    <handler?name="URLMapper"
    ????????type
    ="java:org.apache.axis.handlers.http.URLMapper"?/>
    ????
    <handler?name="soapmonitor"
    ????????type
    ="java:org.apache.axis.handlers.SOAPMonitorHandler">
    ????????
    <parameter?name="wsdlURL"
    ????????????value
    ="/axis/SOAPMonitorService-impl.wsdl"?/>
    ????????
    <parameter?name="namespace"
    ????????????value
    ="http://tempuri.org/wsdl/2001/12/SOAPMonitorService-impl.wsdl"?/>
    ????????
    <parameter?name="serviceName"?value="SOAPMonitorService"?/>
    ????????
    <parameter?name="portName"?value="Demo"?/>
    ????
    </handler>
    ????
    <service?name="AdminService"?provider="java:MSG">
    ????????
    <parameter?name="allowedMethods"?value="AdminService"?/>
    ????????
    <parameter?name="enableRemoteAdmin"?value="false"?/>
    ????????
    <parameter?name="className"?value="org.apache.axis.utils.Admin"?/>
    ????????
    <namespace>http://xml.apache.org/axis/wsdd/</namespace>
    ????
    </service>
    ????
    <service?name="SOAPMonitorService"?provider="java:RPC">
    ????????
    <parameter?name="allowedMethods"?value="publishMessage"?/>
    ????????
    <parameter?name="className"
    ????????????value
    ="org.apache.axis.monitor.SOAPMonitorService"?/>
    ????????
    <parameter?name="scope"?value="Application"?/>
    ????
    </service>
    ????
    <service?name="AxisDemo"?provider="java:RPC">
    ????????
    <parameter?name="allowedMethod"?value="*"></parameter>
    ????????
    <parameter?name="className"
    ????????????value
    ="com.lucky.axis.service.PersonInfoService">
    ????????
    </parameter>
    ????????
    <beanMapping?qname="myNS:Person"?xmlns:myNS="urn:PersonInfo"
    ????????????languageSpecificType
    ="java:com.lucky.axis.service.Person"?/>
    ????????
    <beanMapping?qname="myNS:Book"?xmlns:myNS="urn:PersonBookInfo"
    ????????????languageSpecificType
    ="java:com.lucky.axis.service.Book"?/>
    ????
    </service>
    ????
    <transport?name="http">
    ????????
    <requestFlow>
    ????????????
    <handler?type="URLMapper"?/>
    ????????????
    <handler
    ????????????????
    type="java:org.apache.axis.handlers.http.HTTPAuthHandler"?/>
    ????????
    </requestFlow>
    ????????
    <parameter?name="qs:list"
    ????????????value
    ="org.apache.axis.transport.http.QSListHandler"?/>
    ????????
    <parameter?name="qs:wsdl"
    ????????????value
    ="org.apache.axis.transport.http.QSWSDLHandler"?/>
    ????????
    <parameter?name="qs.list"
    ????????????value
    ="org.apache.axis.transport.http.QSListHandler"?/>
    ????????
    <parameter?name="qs.method"
    ????????????value
    ="org.apache.axis.transport.http.QSMethodHandler"?/>
    ????????
    <parameter?name="qs:method"
    ????????????value
    ="org.apache.axis.transport.http.QSMethodHandler"?/>
    ????????
    <parameter?name="qs.wsdl"
    ????????????value
    ="org.apache.axis.transport.http.QSWSDLHandler"?/>
    ????
    </transport>
    ????
    <transport?name="local">
    ????????
    <responseFlow>
    ????????????
    <handler?type="LocalResponder"?/>
    ????????
    </responseFlow>
    ????
    </transport>
    </deployment>

    其中
    <service?name="AxisDemo"?provider="java:RPC">
    ????????
    <parameter?name="allowedMethod"?value="*"></parameter>
    ????????
    <parameter?name="className"
    ????????????value
    ="com.lucky.axis.service.PersonInfoService">
    ????????
    </parameter>
    ????????
    <beanMapping?qname="myNS:Person"?xmlns:myNS="urn:PersonInfo"
    ????????????languageSpecificType
    ="java:com.lucky.axis.service.Person"?/>
    ????????
    <beanMapping?qname="myNS:Book"?xmlns:myNS="urn:PersonBookInfo"
    ????????????languageSpecificType
    ="java:com.lucky.axis.service.Book"?/>
    ????
    </service>
    是配置服務(wù)端的WebService,name="AxisDemo" 是WebService的名稱,使用http://localhost:8080/axis/services/AxisDemo?wsdl來訪問,name="allowedMethod" 表示服務(wù)類中那些方法需要封裝,value="*" 表示所有的方法都封裝,如果值封裝其中部分方法,需要把方法名稱列出來,用“,”逗號分割,name="className" 表示定義WebService服務(wù)端的類,value="com.lucky.axis.service.PersonInfoService" 表示將這個類作為WebService類封裝,<beanMapping qname="myNS:Person" xmlns:myNS="urn:PersonInfo"
    ???languageSpecificType="java:com.lucky.axis.service.Person" />這個表示類中需要引入的其他類
    重新啟動Tomcat5.5,訪問http://localhost:8080/axis/services/AxisDemo?wsdl,可以看到該Web ServiceWSDL描述信息



    ?

    編寫客戶端測試類,命名為Client.java。在該類中分別對PersonInfoService.java所提供的方法進行調(diào)用,代碼如下:

    package?com.lucky.axis.client;

    import?java.util.HashMap;
    import?java.util.Map;

    import?javax.xml.namespace.QName;

    import?org.apache.axis.client.Call;
    import?org.apache.axis.client.Service;
    import?org.apache.axis.encoding.ser.BeanDeserializerFactory;
    import?org.apache.axis.encoding.ser.BeanSerializerFactory;

    import?com.lucky.axis.service.Book;
    import?com.lucky.axis.service.Person;

    public?class?Client?{
    ????
    public?Client()?{
    ????}


    ????
    public?static?void?main(String[]?args)?throws?Exception?{
    //????????if?(args.length?<?1)?{
    //????????????System.out.println("錯誤:缺少參數(shù)");
    //????????????System.exit(0);
    //????????}
    ????????
    //?Web服務(wù)的URL
    ????????String?url?=?"http://localhost:8080/axis/services/AxisDemo";
    ????????Service?service?
    =?new?Service();
    ????????Call?call?
    =?(Call)?service.createCall();
    ????????call.setTargetEndpointAddress(url);

    ????????
    //?注冊序列化/反序列化器
    ????????QName?qn?=?new?QName("urn:PersonInfo",?"Person");
    ????????call.registerTypeMapping(Person.
    class,?qn,?new?BeanSerializerFactory(
    ????????????????Person.
    class,?qn),
    ????????????????
    new?BeanDeserializerFactory(Person.class,?qn));
    ????????QName?qnb?
    =?new?QName("urn:PersonBookInfo",?"Book");
    ????????call.registerTypeMapping(Book.
    class,?qnb,?new?BeanSerializerFactory(
    ????????????????Book.
    class,?qnb),?new?BeanDeserializerFactory(Book.class,?qnb));

    ????????
    //?設(shè)置調(diào)用方法
    ????????call.setOperationName(new?javax.xml.namespace.QName("http://test",
    ????????????????
    "getPersonInfo"));
    ????????Person?person?
    =?new?Person();
    ????????person.setName(
    "Kiah?Han");
    ????????person.setAge(
    26);
    ????????Map?map?
    =?new?HashMap();
    ????????map.put(
    "NAME",?"李彬");
    ????????map.put(
    "YEAR",?new?Integer(3));
    ????????person.setSkill(map);
    ????????Book?book?
    =?new?Book();
    ????????book.setBookname(
    "<Thinking?in?Java>");
    ????????book.setIsbn(
    new?Long(123456789));
    ????????book.setPrice((
    float)?25.98);
    ????????book.setPages(
    new?Integer(925));
    ????????person.setMybook(book);

    ????????
    //?Web服務(wù)調(diào)用
    ????????java.lang.Object?_resp?=?call.invoke(new?java.lang.Object[]?{?person?});

    ????????
    //?輸出到屏幕
    ????????System.out.println(_resp.toString());

    ????????System.out
    ????????????????.println(
    "------------Starting?setBookInfo()---------------------");
    ????????call.setOperationName(
    new?javax.xml.namespace.QName("http://test",
    ????????????????
    "setBookInfo"));
    ????????java.lang.Object?_resbook?
    =?call.invoke(new?java.lang.Object[]?{
    ????????????????
    "<Spring?pro>",?new?Long(987654321)?}
    );

    ????????Book?mybook?
    =?(Book)?_resbook;

    ????????System.out.println(mybook.getBookname());
    ????????System.out.println(mybook.getIsbn());
    ????????System.out.println(mybook.getPrice());
    ????????System.out.println(mybook.getPages());
    ????????System.out
    ????????????????.println(
    "------------End?setBookInfo()---------------------------");

    ????????System.out
    ????????????????.println(
    "------------Starting?getPersonInfo()---------------------");
    ????????call.setOperationName(
    new?javax.xml.namespace.QName("http://test",
    ????????????????
    "getPersonInfo"));
    ????????java.lang.Object?_resperson?
    =?call.invoke(new?java.lang.Object[]?{});

    ????????Person?aaron?
    =?(Person)?_resperson;
    ????????System.out.println(aaron.getName());
    ????????System.out.println(aaron.getAge());
    ????????Map?skill?
    =?aaron.getSkill();
    ????????System.out.println(skill.get(
    "NAME"));
    ????????System.out.println(skill.get(
    "YEAR"));
    ????????Book?aaronbook?
    =?aaron.getMybook();
    ????????System.out.println(aaronbook.getBookname());
    ????????System.out.println(aaronbook.getIsbn());
    ????????System.out.println(aaronbook.getPrice());
    ????????System.out.println(aaronbook.getPages());
    ????????System.out
    ????????????????.println(
    "------------End?getPersonInfo()---------------------");
    ????}


    }



    ???直接運行該Client.java中的main方法,運行結(jié)果如下:

    Hello, Kiah Han ! This is you information...
    Ages: 26
    李彬 : you have 3 years experience!
    Book Name : <Thinking in Java>
    ISBN : 123456789
    You pay $25.98 for this book.
    This book have 925 pages.

    ------------Starting setBookInfo()---------------------
    <Spring pro>
    987654321
    25.65
    265
    ------------End setBookInfo()---------------------------
    ------------Starting getPersonInfo()---------------------
    Aaron
    26
    JAVA
    3
    <Thinking in Java>
    456256821
    99.8
    982
    ------------End getPersonInfo()---------------------



    源碼: http://www.tkk7.com/Files/libin2722/axis.rar


    成功,好就到這里了,下班了,希望能給大家一點幫助

    我的聯(lián)系方式:
    qq:33614814
    e-mail:libin2722@sohu.com




    posted on 2007-11-22 18:59 禮物 閱讀(3731) 評論(2)  編輯  收藏 所屬分類: webservice

    評論

    # re: Axis1.4 開發(fā)筆記 2009-05-22 00:54 魔方網(wǎng)
    Thanks a lot   回復(fù)  更多評論
      

    # 文件位置好像放錯了 2012-11-20 14:58 趙光培
    在%Tomcat%\webapps\axis目錄下建立 server-config.wsdd 文件
    應(yīng)該是在
    在%Tomcat%\webapps\axis\WEB-INF目錄下建立 server-config.wsdd 文件  回復(fù)  更多評論
      

    主站蜘蛛池模板: 亚洲V无码一区二区三区四区观看 亚洲αv久久久噜噜噜噜噜 | 精品久久久久久亚洲中文字幕| 二级毛片免费观看全程| 全部免费毛片在线播放| 在线jyzzjyzz免费视频| 亚洲国产精品一区二区第一页| 亚洲日韩精品国产3区| a级成人毛片免费视频高清| 成年午夜视频免费观看视频| 国产亚洲精品自在线观看| 亚洲一区在线视频观看| 成人无码精品1区2区3区免费看| www.黄色免费网站| 亚洲色无码一区二区三区| 亚洲GV天堂GV无码男同| 无码一区二区三区免费| 免费中文字幕一级毛片| 亚洲国产日韩在线成人蜜芽 | 国产在线观看xxxx免费| 成年女人毛片免费观看97| 亚洲AV永久无码区成人网站| 白白色免费在线视频| 免费看污成人午夜网站| 亚洲国产三级在线观看| 色噜噜狠狠色综合免费视频| 久久久久久国产a免费观看黄色大片 | 亚洲av无码专区在线观看下载| 久久久久久国产精品免费免费男同 | 久久久久久久尹人综合网亚洲 | 午夜影院免费观看| 亚洲无码日韩精品第一页| 国产亚洲国产bv网站在线| 免费91最新地址永久入口| 亚洲v国产v天堂a无码久久| 亚洲三级高清免费| 91av免费观看| 亚洲国产第一站精品蜜芽| 免费无遮挡无遮羞在线看| 在线看片人成视频免费无遮挡| 亚洲第一网站免费视频| 午夜网站在线观看免费完整高清观看 |