[開発] 10年も前からあるActiveMQをSpringで

Ref. Using ActiveMQ 4 > Getting Started
http://activemq.apache.org/getting-started.html#GettingStarted-StartingActiveMQStartingActiveMQ

ActiveMQ のダウンロード
http://activemq.apache.org/download.html
latest: ActiveMQ 5.14.1 Release as-of 20161207

ActiveMQ のインストール手順書 for Windows
http://activemq.apache.org/getting-started.html#GettingStarted-InstallationProcedureforWindows

■ActiveMQ のインストール
ダウンロードした zip を展開し C ドライブ直下に配置 = インストール完了
C:\apache-activemq-5.14.1

■ActiveMQ 起動
cd C:\apache-activemq-5.14.1
bin\activemq start
コマンドプロンプトに以下が表示されればOK
INFO | No Spring WebApplicationInitializer types detected on classpath
INFO | ActiveMQ WebConsole available at http://0.0.0.0:8161/
INFO | ActiveMQ Jolokia REST API available at http://0.0.0.0:8161/api/jolokia/
INFO | Initializing Spring FrameworkServlet 'dispatcher'
INFO | No Spring WebApplicationInitializer types detected on classpath
INFO | jolokia-agent: Using policy access restrictor classpath:/jolokia-access.xml
以下をブラウザに打ち込みadminでログインすれば、MQ監視画面が見れる
http://127.0.0.1:8161/admin/
Login ID: admin
Password: admin

■ActiveMQ 停止
cd [activemq_install_dir]/bin
./activemq stop

■Queue の作成
MQ監視画面のメニューバーから Queues を選択
Queue Nameに任意のキュー名称を入れてcreate

■電文生成&送信
Queue画面>送信先とするQueue>Operations>Send To で必要事項を入力して Send

■ActiveMQ のログ
C:\apache-activemq-5.14.1\data\activemq.log

■ActiveMQ の port
デフォルト port は61616
port 状況を確認するコマンド
netstat -an|find "61616"


■Tutorial
ActiveMQ with Spring in Eclipse
http://natlaughlin.com/articles/activemq_spring/

ActiveMQSpring をダウンロードして解凍
Eclipse>Project Explorer>右クリック>Import>General>Existing Projects into Workspace
ActiveMQSpring を選択

Eclipse>Project Explorer>ActiveMQSpring>右クリック>プロパティ>Java Build Path
>Libraries>Add External JARs..
C:\Users\user1\.m2\repository\org\apache\tomcat\tomcat-servlet-api\8.0.36\tomcat-servlet-api-8.0.36.jar>追加

Eclipse>Servers>Tomcat>右クリック>Add and Remove..
ActiveMQSpring を選択して追加

Eclipse>Servers>Tomcat>Run

http://localhost:8080/ActiveMQSpring/activemq/receive
にアクセス
暫し待つと(裏でActiveMQ電文をTESTQUEUE queueに送信している)
Message received:hello123 と表示される

http://localhost:8080/ActiveMQSpring/activemq/send?message=hello123
で異なる電文を送信できる。
URL末尾のmessageを任意の文字列にして送信(Enter)した後にアクセス
http://localhost:8080/ActiveMQSpring/activemq/receive
を更新すると、messageの後の文字列が表示されている筈

Spring の設定
WebContent/WEB-INF/applicationContext.xml
<'bean id="broker" class="org.apache.activemq.xbean.XBeanBrokerService">
<'property name="useJmx" value="false">
<'property name="persistent" value="true">
<'property name="transportConnectors">
<'bean class="org.apache.activemq.broker.TransportConnector">
<'property name="uri" value="tcp://localhost:0" />
<'/bean>
<'/property>
<'/bean>

<'bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQXAConnectionFactory">
<'property name="brokerURL" value="vm://localhost">
<'/bean>

XBeanBrokerService (仲介ブローカー)を使用するようになっている
仲介ブローカー介さずに直に ActiveMQ ブローカーに飛ばしたい場合は以下のように修正したら良い

<'bean id="connectionFactory"
class="org.apache.activemq.spring.ActiveMQXAConnectionFactory" >
<'property name="brokerURL" value="tcp://localhost:61616">
<'/bean>

ライブラリ構成を Maven の pom.xml から変更した場合は再デプロイが必要
mvn dependency:copy-dependencies -DoutputDirectory=./WebContent/WEB-INF/lib

■参考
2009/10/16, Efficient Lightweight JMS with Spring and ActiveMQ
https://codedependents.com/2009/10/16/efficient-lightweight-jms-with-spring-and-activemq/

2011/03/03, Get started with Spring JMS using ActiveMQ
http://java-diaries.blogspot.jp/2011/03/get-started-with-spring-jms-using.html

Messaging with JMS
https://spring.io/guides/gs/messaging-jms/

2007/02/14, 6.ActiveMQについて
http://www.techscore.com/tech/Java/JavaEE/JMS/6/

2015/12/03, MQTTって何?
http://qiita.com/mamatumo/items/e99428775c20064f41ee

tag : ActiveMQ JMS Spring Tomcat QUEUE message Eclipse

2016-12-09 23:23 : 開発 : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

search

ad



counter


tag cloud

category cloud