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

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

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

    太陽雨

    痛并快樂著

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      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 這樣將會(huì)發(fā)布兩個(gè)service,BookServiceEchoService。隨后就可以使用client端進(jìn)行測(cè)試了。

         //測(cè)試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及其實(shí)現(xiàn)了。

         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 簡(jiǎn)單的測(cè)試就是通過IE,輸入http://ip:port/context/services/BookService?wsdl或者http://ip:port/context/services/EchoService?wsdl,將會(huì)出現(xiàn)相應(yīng)的wsdl文檔。

         如果只是輸入http://ip:port/context/services/BookService,會(huì)出現(xiàn)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) 評(píng)論(2)  編輯  收藏 所屬分類: javaEE

    Feedback

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

    # re: XFire與Spring結(jié)合的幾種方式 2012-06-29 13:00 樓主
    @羽
    xfire已經(jīng)很久沒有用過了,而且已經(jīng)轉(zhuǎn)變?yōu)镃XF了,同學(xué)還是看下CXF吧,而且支持注解很方便,要與時(shí)俱進(jìn)嘛  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 亚洲精品国产精品国自产网站 | 全部免费毛片在线| 亚洲国产乱码最新视频| 亚洲欧洲∨国产一区二区三区| 免费精品一区二区三区第35| 亚洲三级电影网址| 亚洲一区二区精品视频| 久久久精品免费国产四虎| 猫咪免费人成网站在线观看入口| 亚洲中文无码av永久| 亚洲性天天干天天摸| 2019中文字幕在线电影免费| 亚洲第一视频在线观看免费| 国产精品亚洲一区二区三区在线观看| 久久精品国产99国产精品亚洲| 亚洲AV福利天堂一区二区三| 亚洲精品自产拍在线观看| 亚洲午夜av影院| 免费国产在线观看老王影院| 免费黄色网址入口| 女人让男人免费桶爽30分钟| 黄页网站免费观看| 日韩免费精品视频| 亚洲精品在线免费观看| 老汉精品免费AV在线播放| 久久久久免费精品国产| 亚洲免费观看视频| 久久免费精品一区二区| 大地资源在线资源免费观看| 中国黄色免费网站| 亚洲另类自拍丝袜第1页| 国产a v无码专区亚洲av| 亚洲国产精品一区二区第一页免| 日韩中文无码有码免费视频 | 在线观看的免费网站| 又黄又爽又成人免费视频| 成人黄色免费网址| 99在线视频免费观看视频 | 亚洲va久久久噜噜噜久久男同| 国产亚洲精品久久久久秋霞 | jizz免费在线观看|