<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 小蟲旺福 閱讀(6887) 評論(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毛片| 亚洲一区二区三区乱码A| 久久亚洲免费视频| 91成人免费福利网站在线| 亚洲另类小说图片| 最近最新高清免费中文字幕 | 亚洲av无码天堂一区二区三区| 亚洲日韩乱码中文字幕| 日本免费一二区在线电影| 亚洲AV一区二区三区四区| 日日AV拍夜夜添久久免费| 性色av极品无码专区亚洲| 免费亚洲视频在线观看| 一级特黄特色的免费大片视频| 亚洲午夜精品第一区二区8050| aa毛片免费全部播放完整| 亚洲AV综合色区无码另类小说| 国产高清不卡免费视频| 亚洲美女自拍视频| 一区二区无码免费视频网站| 亚洲国产精品18久久久久久| 亚洲成av人片不卡无码久久| 精品无码一级毛片免费视频观看| 亚洲AV无码久久精品色欲| www视频免费看| 亚洲aⅴ天堂av天堂无码麻豆 | 国产专区一va亚洲v天堂| 免费观看久久精彩视频 | 亚洲精品第一国产综合亚AV| 免费国产在线观看不卡| a级毛片免费播放| 亚洲毛片基地4455ww| 无码精品人妻一区二区三区免费看 | 亚洲av成人一区二区三区在线观看| 国产精品免费观看视频| 91亚洲国产成人久久精品网站 | 一个人在线观看视频免费| 老司机福利在线免费观看| 久久精品国产精品亚洲蜜月| 国产在线国偷精品产拍免费| 久久www免费人成精品香蕉|