javajohn

          金色年華

          tomcat下應用JMS

          ???????? jms做為J2EE的高級部分一直蒙著一層神秘的面紗,作為JMS的定制者SUN只規定了JMS規范,象很多其他SUN產品一樣被多家廠商提供了具體的實現。但是作為tomcat和RESIN(今年初宣布全部支持J2EE規范)。這些面向低端但卻被廣泛應用的服務器本身并不對JMS提供支持。慶幸的是openjms和activeMQ兩家開源軟件提供了插件式的支持。
          ??????? 在應用了一些開發框架如spring的項目里如果要使用到JMS,雖然SPRING提供了部分對JMS的支持但經過我一段時間的應用發現,OO的封裝在某些地方反而成為開發過程中的障礙。在實現諸如監聽之類的代碼段里使人非常的懊惱,即使用callback(回調)有些東西仍然不能夠很好的被取到。
          ??????? 下面就一些TOMCAT上面JMS的支持既實現做一下整理。
          1.很自然的你需要下載JMS實現,如:opnerJMS或者activeMQ .下載地址www.jmsopen.comwww.activeMQ.com
          2.服務器下載以后的具體配置在以上兩個網站上都有很詳細的說明,就不再列舉了。
          3。和WEB服務器的整合
          ???????? 首先要配置應用的web.xml這個文件配置如下:

          1 ?? < context-param >
          2 ???? < param-name > brokerURI </ param-name >
          3 ???? < param-value > /WEB-INF/activemq.xml </ param-value >
          4 ?? </ context-param >
          5
          6 ?? < listener >
          7 ???? < listener-class > org.activemq.web.SpringBrokerContextListener </ listener-class >
          8 ?? </ listener >
          將這一段代碼放到web.xml里。注意到activemq.xml文件,是jms服務器的具體配置:
          <?xml?version="1.0"?encoding="UTF-8"?>
          <!DOCTYPE?beans?PUBLIC??"-//ACTIVEMQ//DTD//EN"?"http://activemq.org/dtd/activemq.dtd">
          <beans>

          ??
          <!--?====================================================================?-->
          ??
          <!--?ActiveMQ?Broker?Configuration?-->
          ??
          <!--?====================================================================?-->
          ??
          <broker>
          ????
          <connector>
          ??????
          <tcpServerTransport?uri="tcp://localhost:61616"?useAsyncSend="true"?maxOutstandingMessages="50"/>
          ????
          </connector>

          ????
          <!--?to?enable?Stomp?support?uncomment?this
          ????<connector>
          ??????<serverTransport?uri="stomp://localhost:61626"/>
          ????</connector>
          ????
          -->

          ????
          <persistence>
          ??????????
          <jdbcPersistence?dataSourceRef="oracle-ds"/>
          ????
          </persistence>
          ??
          </broker>

          ??
          <!--?====================================================================?-->
          ??
          <!--?JDBC?DataSource?Configurations?-->
          ??
          <!--?====================================================================?-->

          ??
          <!--?The?Derby?Datasource?that?will?be?used?by?the?Broker?-->
          ??
          <bean?id="oracle-ds"?class="[oracle驅動]"?destroy-method="close">
          ????
          <property?name="driverClassName">
          ??????
          <value>org.apache.derby.jdbc.EmbeddedDriver</value>
          ????
          </property>
          ????
          <property?name="url">
          ??????
          <!--?Use?a?URL?like?'jdbc:hsqldb:hsql://localhost:9001'?if?you?want?to?connect?to?a?remote?hsqldb?-->
          ??????
          <value>jdbc:derby:derbydb;create=true</value>
          ????
          </property>
          ????
          <property?name="username">
          ??????
          <value></value>
          ????
          </property>
          ????
          <property?name="password">
          ??????
          <value></value>
          ????
          </property>
          ????
          <property?name="poolPreparedStatements">
          ??????
          <value>true</value>
          ????
          </property>
          ??
          </bean>
          </beans>

          此時,在啟動你的TOMCAT的時候會看到JMS服務器已經綁到了上面。(待續)

          posted on 2005-12-08 18:41 javajohn 閱讀(17053) 評論(20)  編輯  收藏 所屬分類: 短信開發

          Feedback

          # re: tomcat下應用JMS 2005-12-19 09:38 jackey

          樓主,麻煩把具體的配置寫詳細,或者把文檔發到我的郵箱,急用.
          還有openjms的還有沒別的網站下載,上面的我打不開.
          我的郵箱:feitianshu1983@21cn.com  回復  更多評論   

          # re: tomcat下應用JMS 2005-12-19 13:13 javajohn

          以上的兩個網地址:
          http://activemq.codehaus.org/ 是activeMQ的
          http://openjms.sourceforge.net/ 是openjms的
          配置的時候注意
          <persistence>
          <jdbcPersistence dataSourceRef="oracle-ds"/>
          </persistence>
          這段dataSourceRef的值是你下面配置的數據庫連接的名稱,比如我的配置是oracle-ds,在下面就做了oracle的連接信息,在下載了activeMQ以后在它的配置文件里有對mysql的例子。  回復  更多評論   

          # re: tomcat下應用JMS 2006-01-10 15:36

          我現在正在做TOMCAT+SPRING+ACTIVEMQ的JMS呢,好頭痛,總是出現各種各樣的問題,好想請教你一下呀,我的QQ是25009993,MSN是tdhwxz@hotmail.com,希望加我啊!很緊急呢!謝謝先  回復  更多評論   

          # re: tomcat下應用JMS 2006-02-19 20:55 ergedan

          這個是什么?  回復  更多評論   

          # re: tomcat下應用JMS 2006-02-27 17:18 gusee

          activemq網站上面關于tomcat的配置寫得不太清楚,
          我配置完后控制臺上總是報Error Listener  回復  更多評論   

          # re: tomcat下應用JMS 2006-03-02 09:29 javajohn

          我以上的說明都是針對3.2版本的,據說新版4.0已經發布了.3.2版的文件下載到本地本身就有些地方配置是錯誤的,我已經都說明了的,你只要看過我的這篇文章應該是可以正常運行的  回復  更多評論   

          # re: tomcat下應用JMS 2006-03-04 12:01 shao

          樓主,麻煩把具體的配置寫詳細,或者把文檔發到我的郵箱,急用.
          還有openjms的還有沒別的網站下載,上面的我打不開.
          我的郵箱:shaofuqiang@jinchuang.net  回復  更多評論   

          # re: tomcat下應用JMS 2006-03-04 22:25 javajohn

          你登不上openjms說明你沒有詳細看我這篇文章的回復,在回復里我修改了正確的地址,具體的配置我已經在上面的文章說明了,不知道你怎么會配置不成功的.
          不知道blogjava能不能帶附件上來,我可以把我整理過的文檔發上來.  回復  更多評論   

          # re: tomcat下應用JMS 2006-03-04 22:30 javajohn

          如果你在第一次測試activeMQ的時候報listener的錯誤那應該是web.xml里的監聽器配置不正確,這是因為activeMQ網站供下載的web.xml這個文件本來就是錯誤的,那個監聽器應該配置如下:
          <listener>
          <listener-class>org.activemq.web.SpringBrokerContextListener</listener-class>
          </listener>

            回復  更多評論   

          # re: tomcat下應用JMS 2006-03-12 16:19 msq

          activeMQ 數據庫怎么設置
          不用建表嗎  回復  更多評論   

          # re: tomcat下應用JMS 2006-03-13 09:09 javajohn

          ACTIVEMQ自己會建  回復  更多評論   

          # re: tomcat下應用JMS 2006-03-13 09:11 javajohn

          也不一定要用數據庫,activeMQ也支持其它的消息保存機制  回復  更多評論   

          # re: tomcat下應用JMS 2006-04-10 19:55 asf

          上面配置的是oracle-ds
          下面卻是derby-ds
          真不知道怎么通過的  回復  更多評論   

          # re: tomcat下應用JMS 2006-04-26 14:02 pc

          不錯哦!  回復  更多評論   

          # re: tomcat下應用JMS 2006-04-30 16:52 javaboy

          activemq目前還是不穩定,特別是在網絡狀態不好的環境下,基本上網絡一出現異常,它就死掉,估計是它還沒有對網絡異常進行更多的檢測。  回復  更多評論   

          # re: tomcat下應用JMS 2006-05-28 00:24 綠色使者、綠色心情

          真是,還是應該有一些專業精神,asf提出的錯誤很明顯,確是到現在都還沒有更改過來  回復  更多評論   

          # re: tomcat下應用JMS 2006-05-29 16:19 javajohn

          呵呵,看來是不能偷懶哦  回復  更多評論   

          # re: tomcat下應用JMS 2007-05-29 16:58 guest

          不知道樓主整合過tomcat和MQ6.0沒?
          如果是,可以發給配置文件給我嗎?
          gongsiping@gmail.com
          http://wiki.apache.org/tomcat/HowTo#head-b45c4c0b8c57d9efa1e9c5342650d5e534f55cfa
          照著這篇文章試了一下,
          QueueConnectionFactory qcf = (QueueConnectionFactory) ctx.lookup("jms/MyQCF");
          在這步的時候總是會出錯.

          另外如果采用support pac即IBM提供的擴展JNDI的包,會出現
          Properties env = new Properties();
          env.put(
          Context.INITIAL_CONTEXT_FACTORY,
          "com.ibm.mq.jms.context.WMQInitialContextFactory");
          env.put(Context.PROVIDER_URL, "localhost:1414/SYSTEM.DEF.SVRCONN");

          Context ctx = (Context) new InitialContext(env)
          到這步時會出錯:
          錯誤: javax.naming.ServiceUnavailableException: Unable to connect to the target
          queue manager localhost:1414/SYSTEM.DEF.SVRCONN [Root exception is com.ibm.mq.MQ
          Exception: MQJE001: MQException 出現:完成代碼是 2,原因為 2195
          MQJE020: 隊列管理器不支持 CCSID]

          看了一下MQContext類,它里面設定了默認的CCSID的值,而建立工廠連接的時候,根本就沒地方去重新設定CCSID..
            回復  更多評論   

          # re: tomcat下應用JMS 2008-08-19 20:17 任之

          您文章里的連接或知識已經過時了,請更新好嗎?  回復  更多評論   

          # re: tomcat下應用JMS 2011-09-05 17:09 和仁

          我與遇到此問題了.你是怎么解決的?  回復  更多評論   



          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(7)

          隨筆分類(36)

          隨筆檔案(39)

          classmate

          good blog

          企業管理網站

          好友

          站點收藏

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 石阡县| 邓州市| 自治县| 东乌珠穆沁旗| 财经| 建宁县| 屯昌县| 从化市| 柳江县| 高密市| 交口县| 麟游县| 独山县| 海门市| 阳泉市| 兴宁市| 西平县| 深水埗区| 确山县| 界首市| 昂仁县| 辽源市| 蓬安县| 罗城| 平顶山市| 手游| 凤台县| 连州市| 共和县| 定兴县| 宝山区| 永安市| 光泽县| 神农架林区| 汽车| 景东| 南岸区| 海盐县| 洪洞县| 河北省| 彭阳县|