javajohn

          金色年華

          tomcat下應(yīng)用JMS

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

          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服務(wù)器的具體配置:
          <?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驅(qū)動(dòng)]"?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>

          此時(shí),在啟動(dòng)你的TOMCAT的時(shí)候會(huì)看到JMS服務(wù)器已經(jīng)綁到了上面。(待續(xù))

          posted on 2005-12-08 18:41 javajohn 閱讀(17060) 評(píng)論(20)  編輯  收藏 所屬分類(lèi): 短信開(kāi)發(fā)

          Feedback

          # re: tomcat下應(yīng)用JMS 2005-12-19 09:38 jackey

          樓主,麻煩把具體的配置寫(xiě)詳細(xì),或者把文檔發(fā)到我的郵箱,急用.
          還有openjms的還有沒(méi)別的網(wǎng)站下載,上面的我打不開(kāi).
          我的郵箱:feitianshu1983@21cn.com  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2005-12-19 13:13 javajohn

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

          # re: tomcat下應(yīng)用JMS 2006-01-10 15:36

          我現(xiàn)在正在做TOMCAT+SPRING+ACTIVEMQ的JMS呢,好頭痛,總是出現(xiàn)各種各樣的問(wèn)題,好想請(qǐng)教你一下呀,我的QQ是25009993,MSN是tdhwxz@hotmail.com,希望加我啊!很緊急呢!謝謝先  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2006-02-19 20:55 ergedan

          這個(gè)是什么?  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2006-02-27 17:18 gusee

          activemq網(wǎng)站上面關(guān)于tomcat的配置寫(xiě)得不太清楚,
          我配置完后控制臺(tái)上總是報(bào)Error Listener  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2006-03-02 09:29 javajohn

          我以上的說(shuō)明都是針對(duì)3.2版本的,據(jù)說(shuō)新版4.0已經(jīng)發(fā)布了.3.2版的文件下載到本地本身就有些地方配置是錯(cuò)誤的,我已經(jīng)都說(shuō)明了的,你只要看過(guò)我的這篇文章應(yīng)該是可以正常運(yùn)行的  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2006-03-04 12:01 shao

          樓主,麻煩把具體的配置寫(xiě)詳細(xì),或者把文檔發(fā)到我的郵箱,急用.
          還有openjms的還有沒(méi)別的網(wǎng)站下載,上面的我打不開(kāi).
          我的郵箱:shaofuqiang@jinchuang.net  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2006-03-04 22:25 javajohn

          你登不上openjms說(shuō)明你沒(méi)有詳細(xì)看我這篇文章的回復(fù),在回復(fù)里我修改了正確的地址,具體的配置我已經(jīng)在上面的文章說(shuō)明了,不知道你怎么會(huì)配置不成功的.
          不知道blogjava能不能帶附件上來(lái),我可以把我整理過(guò)的文檔發(fā)上來(lái).  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2006-03-04 22:30 javajohn

          如果你在第一次測(cè)試activeMQ的時(shí)候報(bào)listener的錯(cuò)誤那應(yīng)該是web.xml里的監(jiān)聽(tīng)器配置不正確,這是因?yàn)閍ctiveMQ網(wǎng)站供下載的web.xml這個(gè)文件本來(lái)就是錯(cuò)誤的,那個(gè)監(jiān)聽(tīng)器應(yīng)該配置如下:
          <listener>
          <listener-class>org.activemq.web.SpringBrokerContextListener</listener-class>
          </listener>

            回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2006-03-12 16:19 msq

          activeMQ 數(shù)據(jù)庫(kù)怎么設(shè)置
          不用建表嗎  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2006-03-13 09:09 javajohn

          ACTIVEMQ自己會(huì)建  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2006-03-13 09:11 javajohn

          也不一定要用數(shù)據(jù)庫(kù),activeMQ也支持其它的消息保存機(jī)制  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2006-04-10 19:55 asf

          上面配置的是oracle-ds
          下面卻是derby-ds
          真不知道怎么通過(guò)的  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2006-04-26 14:02 pc

          不錯(cuò)哦!  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2006-04-30 16:52 javaboy

          activemq目前還是不穩(wěn)定,特別是在網(wǎng)絡(luò)狀態(tài)不好的環(huán)境下,基本上網(wǎng)絡(luò)一出現(xiàn)異常,它就死掉,估計(jì)是它還沒(méi)有對(duì)網(wǎng)絡(luò)異常進(jìn)行更多的檢測(cè)。  回復(fù)  更多評(píng)論   

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

          真是,還是應(yīng)該有一些專(zhuān)業(yè)精神,asf提出的錯(cuò)誤很明顯,確是到現(xiàn)在都還沒(méi)有更改過(guò)來(lái)  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2006-05-29 16:19 javajohn

          呵呵,看來(lái)是不能偷懶哦  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2007-05-29 16:58 guest

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

          另外如果采用support pac即IBM提供的擴(kuò)展JNDI的包,會(huì)出現(xiàn)
          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)
          到這步時(shí)會(huì)出錯(cuò):
          錯(cuò)誤: 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 出現(xiàn):完成代碼是 2,原因?yàn)?2195
          MQJE020: 隊(duì)列管理器不支持 CCSID]

          看了一下MQContext類(lèi),它里面設(shè)定了默認(rèn)的CCSID的值,而建立工廠連接的時(shí)候,根本就沒(méi)地方去重新設(shè)定CCSID..
            回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2008-08-19 20:17 任之

          您文章里的連接或知識(shí)已經(jīng)過(guò)時(shí)了,請(qǐng)更新好嗎?  回復(fù)  更多評(píng)論   

          # re: tomcat下應(yīng)用JMS 2011-09-05 17:09 和仁

          我與遇到此問(wèn)題了.你是怎么解決的?  回復(fù)  更多評(píng)論   



          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(7)

          隨筆分類(lèi)(36)

          隨筆檔案(39)

          classmate

          good blog

          企業(yè)管理網(wǎng)站

          好友

          站點(diǎn)收藏

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 安平县| 鄂伦春自治旗| 清涧县| 临安市| 佛坪县| 沿河| 托克逊县| 无锡市| 石屏县| 海淀区| 桓台县| 肃南| 枞阳县| 宁波市| 丰县| 密山市| 凉城县| 乌拉特前旗| 通渭县| 岚皋县| 三门峡市| 自治县| 江山市| 滦平县| 镇康县| 北碚区| 法库县| 东莞市| 汤原县| 隆回县| 赤城县| 修水县| 布尔津县| 兰溪市| 荣昌县| 中宁县| 深州市| 建湖县| 东宁县| 桐庐县| 禄丰县|