<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 這樣將會發(fā)布兩個service,BookServiceEchoService。隨后就可以使用client端進(jìn)行測試了。

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

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

    Feedback

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

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

    主站蜘蛛池模板: 亚洲另类小说图片| 亚洲邪恶天堂影院在线观看| 亚洲av永久无码精品三区在线4| 成人午夜性A级毛片免费| 在线观看亚洲人成网站| 亚洲欧美第一成人网站7777| 野花高清在线电影观看免费视频 | 一级毛片视频免费观看| 国产精品免费无遮挡无码永久视频| 午夜一区二区免费视频| 亚洲va国产va天堂va久久| 99视频在线免费观看| 亚洲成AV人片在线观看无| 免费无码作爱视频| 亚洲国产精品久久久久婷婷软件 | 免费不卡视频一卡二卡| 亚洲jizzjizz在线播放久| a级毛片高清免费视频就| 久久亚洲国产精品一区二区| 久久免费视频99| 亚洲国产美女精品久久| 国产精品免费福利久久| 久久亚洲精品成人av无码网站| 最近新韩国日本免费观看| 亚洲欧美熟妇综合久久久久| 亚洲成人一区二区| 免费网站观看WWW在线观看| 亚洲天堂视频在线观看| 免费a级毛片高清视频不卡| 国产亚洲精品美女| 午夜影视在线免费观看| 免费夜色污私人影院网站| 亚洲精品少妇30p| 国产在线a免费观看| 黄人成a动漫片免费网站| 亚洲色欲一区二区三区在线观看| 成人久久久观看免费毛片| 亚洲爆乳无码专区| 成人毛片免费观看视频在线 | 亚洲国产三级在线观看| 一色屋成人免费精品网站 |