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

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

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

    太陽雨

    痛并快樂著

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      67 Posts :: 3 Stories :: 33 Comments :: 0 Trackbacks

    1、使用org.codehaus.xfire.spring.XFireSpringServlet與ServiceBean

    1.1 web.xml的配置

     <web-app>
     <display-name>Spring Image Database</display-name>
     <description>Spring Image Database sample application</description>
     <!--
      These values are used by ContextLoaderListener, defined immediately below.
            The files listed below are used to initialize the business logic portion of the application.
            Each dispatcher servlet (defined further down) has their own configuration file,
            which may or may not depend on items in these files.
        -->
        <context-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>
         classpath:applicationContext-webservice.xml
        </param-value>
        </context-param>
     <!-- Log4j configuration listener-->
     <listener>
      <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
     </listener>
     <!-- Spring framework -->
     <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>

     <servlet>
            <servlet-name>XFireServlet</servlet-name>
            <display-name>XFire Servlet</display-name>
            <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>
        </servlet>
                  
        <servlet-mapping>
            <servlet-name>XFireServlet</servlet-name>
            <url-pattern>/services/*</url-pattern>
        </servlet-mapping>

     <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
     
    </web-app>

    1.2 applicationContext-webservice.xml的配置:

    <beans>

        <import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>
       
        <bean name="echoService" class="org.codehaus.xfire.spring.ServiceBean">
            <property name="serviceBean" ref="echo"/>
            <property name="serviceClass" value="org.codehaus.xfire.test.Echo"/>
            <property name="inHandlers">
                <list>
                    <ref bean="addressingHandler"/>
                </list>
            </property>
        </bean>

        <bean id="echo" class="org.codehaus.xfire.test.EchoImpl"/>

        <bean id="addressingHandler" class="org.codehaus.xfire.addressing.AddressingInHandler"/>
     
       <bean name="bookService" class="org.codehaus.xfire.spring.ServiceBean">
            <property name="serviceBean" ref="bookServiceBean"/>
            <property name="serviceClass" value="org.codehaus.xfire.demo.BookService"/>
        </bean>

        <bean id="bookServiceBean" class="org.codehaus.xfire.demo.BookServiceImpl"/>

    </beans>

    1.3 這樣將會發布兩個service,BookServiceEchoService。隨后就可以使用client端進行測試了。

         //測試BookService
        public static void main(String args[])
        { 
            String serviceURL = "http://127.0.0.1:9001/xfire/services/BookService";
            Service serviceModel = new ObjectServiceFactory().create(BookService.class,null,"http://xfire.codehaus.org/BookService",null);
            XFireProxyFactory serviceFactory = new XFireProxyFactory();
            try
            {
                BookService service = (BookService) serviceFactory.create(serviceModel, serviceURL);
                Client client = Client.getInstance(service);
                client.addOutHandler(new OutHeaderHandler());
                Book[] books = service.getBooks();
                System.out.println("BOOKS:");
                for (int i = 0; i < books.length; i++)
                {
                    System.out.println(books[i].getTitle());
                }
            }
            catch (MalformedURLException e)
            {
                e.printStackTrace();
            }
        }

    1.4 忘了BookService及其實現了。

         public interface BookService
        {
                  public Book[] getBooks();
       
                  public Book findBook(String isbn);
       
                 public Map getBooksMap();
       }

     

        public class BookServiceImpl implements BookService
        {
        private Book onlyBook;
       
        public BookServiceImpl()
        {
            onlyBook = new Book();
            onlyBook.setAuthor("Dan Diephouse");
            onlyBook.setTitle("Using XFire");
            onlyBook.setIsbn("0123456789");
         }

         public Book[] getBooks()
         {
            return new Book[] { onlyBook };
         }
       
         public Book findBook(String isbn)
         {
            if (isbn.equals(onlyBook.getIsbn()))
                return onlyBook;
           
            return null;
         }

         public Map getBooksMap() {
      Map result = new HashMap();
      result.put(onlyBook.getIsbn(), onlyBook);
      return result;
         }
        }

    1.5 簡單的測試就是通過IE,輸入http://ip:port/context/services/BookService?wsdl或者http://ip:port/context/services/EchoService?wsdl,將會出現相應的wsdl文檔。

         如果只是輸入http://ip:port/context/services/BookService,會出現Invalid SOAP request.這也說明配置正確。

    2、直接集成Spring(通過Spring的org.springframework.web.servlet.DispatcherServlet)

    2.1 web.xml配置
    <web-app>
    <!-- START SNIPPET: xfire -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
            classpath:org/codehaus/xfire/spring/xfire.xml</param-value>
        </context-param>

        <context-param>
            <param-name>log4jConfigLocation</param-name>
            <param-value>/WEB-INF/log4j.properties</param-value>
        </context-param>

        <listener>
            <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
        </listener>

        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>

        <servlet>
            <servlet-name>xfire</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        </servlet>

        <servlet-mapping>
            <servlet-name>xfire</servlet-name>
            <url-pattern>/*</url-pattern>
        </servlet-mapping>
    <!-- END SNIPPET: xfire -->
    </web-app>
    2.2 xfire-servlet.xml配置
    <beans>
        <!-- START SNIPPET: xfire -->
        <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="urlMap">
                <map>
                    <entry key="/EchoService">
                        <ref bean="echo"/>
                    </entry>
                </map>
            </property>
        </bean>

        <bean id="echoBean" class="org.codehaus.xfire.spring.example.EchoImpl"/>

        <!-- Declare a parent bean with all properties common to both services -->
        <bean id="echo" class="org.codehaus.xfire.spring.remoting.XFireExporter">
            <property name="serviceFactory">
                <ref bean="xfire.serviceFactory"/>
            </property>
            <property name="xfire">
                <ref bean="xfire"/>
            </property>
            <property name="serviceBean">
                <ref bean="echoBean"/>
            </property>
            <property name="serviceClass">
                <value>org.codehaus.xfire.spring.example.Echo</value>
            </property>
        </bean>
        <!-- END SNIPPET: xfire -->
    </beans>
    2.3 余下的配置跟第一種方法一樣。

    posted on 2010-03-05 11:41 小蟲旺福 閱讀(6900) 評論(2)  編輯  收藏 所屬分類: javaEE

    Feedback

    # re: XFire與Spring結合的幾種方式 2012-06-28 19:30
    您好,我的wsdl文檔是生成了,但是客戶端調用service的時候,service里面的entityManager沒有被初始化,為null,spring是不是還有配置啊????  回復  更多評論
      

    # re: XFire與Spring結合的幾種方式 2012-06-29 13:00 樓主
    @羽
    xfire已經很久沒有用過了,而且已經轉變為CXF了,同學還是看下CXF吧,而且支持注解很方便,要與時俱進嘛  回復  更多評論
      

    主站蜘蛛池模板: 国产成人高清亚洲一区久久| 亚洲天堂久久精品| 亚洲精品伦理熟女国产一区二区| 免费观看激色视频网站(性色) | 国产A在亚洲线播放| 中文字幕免费视频精品一| 亚洲自偷自偷在线制服| 日韩精品无码免费专区午夜不卡 | 亚洲国语在线视频手机在线| 黄色免费网站网址| 自拍偷区亚洲国内自拍| 麻豆精品国产免费观看| 成人一级免费视频| 国产亚洲成av片在线观看| 91在线老王精品免费播放| 亚洲人成免费电影| 四虎永久免费网站免费观看| 精品国产呦系列在线观看免费| 亚洲日韩国产精品第一页一区| 99免费观看视频| 国产成人亚洲综合一区| 全部免费毛片在线| 两个人看的www免费| 亚洲国产理论片在线播放| 日韩成人免费aa在线看| 一级毛片大全免费播放| 亚洲成色在线影院| 在线免费观看一级毛片| 国产精品福利片免费看| 亚洲精品免费在线| 全部免费a级毛片| 精品一区二区三区免费毛片爱| 亚洲夂夂婷婷色拍WW47| 日韩精品亚洲aⅴ在线影院| 99视频免费播放| 看成年女人免费午夜视频| 亚洲产国偷V产偷V自拍色戒| 毛片A级毛片免费播放| 99在线视频免费观看| 亚洲中文字幕无码爆乳app| 亚洲色欲久久久综合网|