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

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

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

    Terry.Li-彬

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

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
    在現今的Web應用中經常使用Spring框架來裝載JavaBean。如果要想將某些在Spring中裝配的JavaBean發布成WebService,使用Axis2Spring感知功能是非常容易做到的。
    ??? 在本文的例子中,除了<Tomcat安裝目錄>\webapps\axis2目錄及該目錄中的相關庫外,還需要Spring框架中的spring.jar文件,將該文件復制到<Tomcat安裝目錄>\webapps\axis2\WEB-INF\lib目錄中。
    ??? 下面先建立一個JavaBean(該JavaBean最終要被發布成WebService),代碼如下:
    package?service;
    import?entity.Person;
    public?class?SpringService
    {
    ????
    private?String?name;
    ????
    private?String?job;
    ????
    public?void?setName(String?name)
    ????{
    ????????
    this.name?=?name;
    ????}
    ????
    public?void?setJob(String?job)
    ????{
    ????????
    this.job?=?job;
    ????}
    ????
    public?Person?getPerson()
    ????{
    ????????Person?person?
    =?new?Person();
    ????????person.setName(name);
    ????????person.setJob(job);
    ????????
    return?person;
    ????}
    ????
    public?String?getGreeting(String?name)
    ????{
    ????????
    return?"hello?"?+?name;
    ????}
    }

    ??? 其中Person也是一個JavaBean,代碼如下:

    package?entity;
    public?class?Person
    {
    ????
    private?String?name;
    ????
    private?String?job;
    ????
    public?String?getName()
    ????{
    ????????
    return?name;
    ????}
    ????
    public?void?setName(String?name)
    ????{
    ????????
    this.name?=?name;
    ????}
    ????
    public?String?getJob()
    ????{
    ????????
    return?job;
    ????}
    ????
    public?void?setJob(String?job)
    ????{
    ????????
    this.job?=?job;
    ????}
    }

    ??? 將上面兩個Java源文件編譯后,放到<Tomcat安裝目錄>\webapps\axis2\WEB-INF\classes目錄中。

    ??? 在<Tomcat安裝目錄>\webapps\axis2\WEB-INF\web.xml文件中加入下面的內容:

    <listener>
    ????????
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
    ??????
    <param-name>contextConfigLocation</param-name>
    ??????
    <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>

    ??? <Tomcat安裝目錄>\webapps\axis2\WEB-INF目錄中建立一個applicationContext.xml文件,該文件是Spring框架用于裝配JavaBean的配置文件,內容如下:

    <?xml?version="1.0"?encoding="UTF-8"?>
    <beans?xmlns="http://www.springframework.org/schema/beans"
    ????????xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
    ????????xmlns:aop
    ="http://www.springframework.org/schema/aop"
    ????????xmlns:tx
    ="http://www.springframework.org/schema/tx"
    ????????xsi:schemaLocation
    ="
    ????????????http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    ????????????http://www.springframework.org/schema/aop?http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
    ????????????http://www.springframework.org/schema/tx?http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
    >
    ??
    <bean?id="springService"?class="service.SpringService">
    ?????
    <property?name="name"?value="姚明"?/>
    ?????
    <property?name="job"?value="職業男籃"?/>?
    ??
    </bean>???
    </beans>

    ??? applicationContext.xml文件中裝配了service.SpringService類,并被始化了namejob屬性。在配置完SpringService類后,就可以直接在程序中FileSystemXmlApplicationContext類或其他類似功能的類讀取applicationContext.xml文件中的內容,并獲得SpringService類的對象實例。但現在我們并不這樣做,而是將SpringService類發布成WebService。

    ??? <Tomcat安裝目錄>\webapps\axis2\WEB-INF\lib目錄中有一個axis2-spring-1.4.1.jar文件,該文件用于將被裝配JavaBean的發布成WebService。在D盤建立一個axi2-spring-ws目錄,并在該目錄中建立一個META-INF子目錄。在META-INF目錄中建立一個services.xml文件,內容如下:

    <service?name="springService">
    ????
    <description>
    ????????Spring?aware
    ????
    </description>
    ????
    <parameter?name="ServiceObjectSupplier">
    ????????org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
    ????
    </parameter>
    ????
    <parameter?name="SpringBeanName">
    ????????springService
    ????
    </parameter>
    ????
    <messageReceivers>
    ????????
    <messageReceiver?mep="http://www.w3.org/2004/08/wsdl/in-out"
    ????????????class
    ="org.apache.axis2.rpc.receivers.RPCMessageReceiver"?/>
    ????
    </messageReceivers>
    </service>????

    ??? Windows控制臺進入axi2-spring-ws目錄,并使用jar命令將axi2-spring-ws目錄中的內容打包成axi2-spring-ws.aar,然后將該文件復制到<Tomcat安裝目錄>\webapps\axis2\WEB-INF\services目錄中,啟動Tomcat后,就可以訪問該WebService了,訪問方式與前面幾篇文章的訪問方式相同。獲得wsdl內容的URL如下:

    http://localhost:8080/axis2/services/springService?wsdl

    ??? 在將Spring中的裝配JavaBean發布成WebService需要注意以下幾點:

    ??? 1.?JavaBean編譯生成的.class文件需要放在WEB-INF\classes目錄中,或打成.jar包后放在WEB-INF\lib目錄中,而WEB-INF\services目錄中的.aar包中不需要包含.class文件,而只需要包含一個META-INF目錄,并在該目錄中包含一個services.xml文件即可。

    ??? 2.?services.xml的配置方法與前幾篇文章的配置方法類似,只是并不需要使用ServiceClass參數指定要發布成WebServiceJava類,而是要指定在applicationContext.xml文件中的裝配JavaBean的名稱(SpringBeanName參數)。

    ??? 3.?services.xml文件中需要通過ServiceObjectSupplier參數指定SpringServletContextObjectSupplier類來獲得SpringApplicationContext對象。

    posted on 2009-09-23 14:41 禮物 閱讀(276) 評論(0)  編輯  收藏 所屬分類: Axis
    主站蜘蛛池模板: jizzjizz亚洲日本少妇| 男人j进女人p免费视频| 亚洲人av高清无码| 久久久久久久久久免免费精品| 8x8×在线永久免费视频| 在线观看亚洲免费| 亚洲毛片在线观看| 免费观看四虎精品成人| 亚洲精品线路一在线观看| 99热亚洲色精品国产88| a级片免费在线观看| 女人张开腿等男人桶免费视频 | 亚洲尹人香蕉网在线视颅| 久久久久久亚洲av无码蜜芽 | 99久久免费精品视频| 亚洲精品无码专区久久同性男| 伊人久久国产免费观看视频| 免费观看成人毛片a片2008| 久久精品国产亚洲香蕉| jizz中国免费| 国产一卡二卡≡卡四卡免费乱码| 亚洲高清美女一区二区三区| 四虎影视无码永久免费| 日韩亚洲AV无码一区二区不卡| av免费不卡国产观看| 亚洲国产高清视频| 亚欧在线精品免费观看一区| 久久亚洲精品中文字幕无码| 无人视频在线观看免费播放影院| 亚洲熟伦熟女新五十路熟妇| AV激情亚洲男人的天堂国语| 国产成人99久久亚洲综合精品| 一个人看的www免费视频在线观看 一个人免费视频观看在线www | 天堂亚洲免费视频| 亚洲天堂中文资源| 国产女高清在线看免费观看| 亚洲欧美日韩国产成人| 亚洲五月午夜免费在线视频| 蜜桃AV无码免费看永久| 亚洲色欲或者高潮影院| 国产aa免费视频|