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

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

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

    posts - 33,  comments - 70,  trackbacks - 0

    一:續一,說明一的可使用性。

    <amq:queue id="destination.report"  physicalName="active.jms.report"/>
        
    <amq:queue id="destination.point"  physicalName="active.jms.point"/>

    queue : 隊列的名字 for 制造者.

    感覺org.springframework.jms.listener.DefaultMessageListenerContainer 做的不好,如果destination property能做一個可包含多個隊列,并且有選擇性的messageListener就好了,這樣就避免下面的監聽的尷尬了。呵呵
    <!--  listener container,MDP無需實現接口 -->
        
    <bean id="fluxPerhourListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">        
            
    <property name="connectionFactory" ref="jmsConnectionFactory"/>
            
    <property name="destination" ref="destination.fluxPerhour"/>
            
    <property name="messageListener" ref="messageListener"/>
        
    </bean>
        
    <bean id="fluxPerDayListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">        
            
    <property name="connectionFactory" ref="jmsConnectionFactory"/>
            
    <property name="destination" ref="destination.fluxPerday"/>
            
    <property name="messageListener" ref="messageListener"/>
        
    </bean>

    <bean id="reportPerdayProducer" class="com.jms.ReportPerdayProducer">
            
    <property name="template" ref="jmsTemplate"/>
            
    <property name="destination" ref="destination.report"/>
        
    </bean>
        
    <bean id="pointProducer" class="com.jms.PointProducer">
            
    <property name="template" ref="jmsTemplate"/>
            
    <property name="destination" ref="destination.point"/>
        
    </bean>

    producer不能重用,因為send到不同destination,所有沒辦法重用。如果能對producer做一個默認統一的封裝就好了. 但是DefaultProducer.那么應該注意隊列線程安全方面,目前沒有什么好的想法,就采用通用一些的辦法,不過xml和代碼稍多一些.


    然后就用到 前面文章一 里面的內容了,非常簡便。
    <!--  Message Driven POJO (MDP) -->
        
    <bean id="messageListener" class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
    <!--  may be other method -->
            
    <constructor-arg>
                
    <bean class="com..jms.MessageConsumerAdapter" >
                    
    <!--業務接口/業務門面-->
                    
    <property name="transfersManager" ref="transfersManager"/>                
                
    </bean>            
            
    </constructor-arg>
            
    <!--  may be other method -->
            
    <property name="defaultListenerMethod" value="receive"/>
            
    <!-- custom MessageConverter define -->
            
    <property name="messageConverter" ref="messageConverter"/>
        
    </bean>    
    <!--  Holder Message converter  -->
        
    <bean id="messageConverter" class="com.jms.CoverterHolder">
            
    <property name="defaultMessageConverter">
                
    <bean class="com.jms.DefaultMessageConverter"/>
            
    </property>
        
    </bean>


    <!--  Spring JmsTemplate config -->
        
    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
            
    <property name="connectionFactory">
                
    <!--  lets wrap in a pool to avoid creating a connection per send -->
                
    <bean class="org.springframework.jms.connection.SingleConnectionFactory">
                    
    <property name="targetConnectionFactory" ref="jmsConnectionFactory"/>
                
    </bean>
            
    </property>
            
    <property name="messageConverter" ref="messageConverter"/>
        
    </bean>
     


    二.單元測試有時加載 activemq的問題
    1.這個可能和spring版本有關系,請采用比較穩定的版本。例如apache-activemq官方包里面提供的.
    2.選擇 xml解析的問題,例如
    public abstract class SpringManagerTestCase extends
            AbstractTransactionalDataSourceSpringContextTests 
    {

        
    public SpringManagerTestCase()
        
    {
            System.setProperty(
    "javax.xml.parsers.DocumentBuilderFactory""org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
            System.setProperty(
    "javax.xml.parsers.SAXParserFactory""org.apache.xerces.jaxp.SAXParserFactoryImpl");
            System.setProperty(
    "javax.xml.transform.TransformerFactory""org.apache.xalan.processor.TransformerFactoryImpl");
            
            setDependencyCheck(
    false);
            setDefaultRollback(
    false);
        }

        
    /**
         * 配置Spring的配置文件的方法。
         * 
    @see org.springframework.test.AbstractDependencyInjectionSpringContextTests#getConfigLocations()
         
    */

        
    protected String[] getConfigLocations() {
            
    return new String[] {"classpath:applicationContext-activemq-embedded.xml"};
        }


    }


    三.為特殊的應用服務器,如resin ,也要選擇特定的xml解析器
    在web.xml中配置增加
    <web-app>
      
    <!--
          In order to be able to compatiable with Resin 2.1.x and 3.0.x,
          both XML and XSLT have to be replaced.
          If only xalan is included, Resin 2.1.x will fail but not 3.0.x.
          Therefore the best way is to use the compatiable version of the
          XML parser ans XSLT.
           - Please refere to the following link for more detailed information.
           - http://www.caucho.com/resin-3.0/xml/jaxp.xtp
      
    -->
      
    <!-- xml -->
      
    <system-property javax.xml.parsers.DocumentBuilderFactory=
                   "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"
    />
      
    <system-property javax.xml.parsers.SAXParserFactory=
                   "org.apache.xerces.jaxp.SAXParserFactoryImpl"
    />
      
    <!--  xslt -->
      
    <system-property javax.xml.transform.TransformerFactory=
                   "org.apache.xalan.processor.TransformerFactoryImpl"
    />


    </web-app>



    以上的以全部在實施中測試通過并且運行。大家可以方向使用和理解。如有疑問,相互交流.
    posted on 2007-04-05 16:55 地獄男爵(hellboys) 閱讀(2822) 評論(0)  編輯  收藏 所屬分類: 編程語言(c/c++ java python sql ......)
    <2007年4月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    常用鏈接

    隨筆分類

    隨筆檔案

    文章檔案

    相冊

    連接

    最新隨筆

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 成人黄色免费网站| 国产高清对白在线观看免费91| 男女猛烈无遮掩视频免费软件| 欧洲人免费视频网站在线| 永久黄网站色视频免费观看| 亚洲高清在线观看| 精品无码一级毛片免费视频观看| 亚洲成a∨人片在无码2023| 国产亚洲成在线播放va| 精品国产污污免费网站aⅴ | 国产成人精品日本亚洲专一区| A毛片毛片看免费| 国产成人免费A在线视频| 全亚洲最新黄色特级网站| 久久久久亚洲AV成人网| 久久精品7亚洲午夜a| 特级毛片免费播放| 国产免费内射又粗又爽密桃视频| 成年女人免费视频播放77777| 蜜芽亚洲av无码精品色午夜| 好男人资源在线WWW免费 | 亚洲精品少妇30p| 女bbbbxxxx另类亚洲| 毛片a级毛片免费观看品善网| 久久精品国产精品亚洲毛片| 一个人看的免费高清视频日本| 国产高清在线免费| 亚洲AV无码一区二区三区牛牛| 永久看日本大片免费35分钟| 亚洲av无码一区二区三区不卡 | 亚洲视频在线观看免费| 日日噜噜噜噜夜夜爽亚洲精品 | 东北美女野外bbwbbw免费 | 亚洲av无码片vr一区二区三区| 日韩免费一区二区三区在线 | 亚洲中文字幕无码爆乳app| 国产在线观看麻豆91精品免费 | 亚洲一区电影在线观看| 国产精品亚洲色婷婷99久久精品| AV片在线观看免费| 亚洲人成77777在线播放网站不卡|