jms 学习1 JMSActiveMQTomcat应用服务器Servlet
程序员文章站
2024-03-19 20:36:22
...
今天有拿来activemq来研究了一番
在activemq给的例子中是启动activemq作为一个独立的服务器 jms客户端通过username password 和brokerUrl去连接,
疑问之一:jms服务器和jms客户端是以怎样的方式通讯的? 从客户端代码看 只是new 了ActiveMQConnectionFactory而已,我的理解是客户端new ActiveMQConnectionFactory时只是去服务器注册了一个客户端,创建connection session等都是本地对象,只有发送消息的时候才真正的跟服务器交互---把消息保存到服务器上,然后由另外的jms客户端监听并处理消息。
MessageConsumer.receive方法是阻塞的 ,最好单独起一个线程来专门监听消息
疑问二:tomcat在使用jms的时候是怎么启动的?配置tomcat在启动的时候绑定到jndi,试了几次,发送没有问题,但是接受不到,明天在调试一下。
还有讲tomcat jndi的配置brokerURL="vm://localhost" 改成tcp://localhost:61616就报错,我的理解是vm用于servlet容器的 tcp是用于应用程序的。
在activemq给的例子中是启动activemq作为一个独立的服务器 jms客户端通过username password 和brokerUrl去连接,
疑问之一:jms服务器和jms客户端是以怎样的方式通讯的? 从客户端代码看 只是new 了ActiveMQConnectionFactory而已,我的理解是客户端new ActiveMQConnectionFactory时只是去服务器注册了一个客户端,创建connection session等都是本地对象,只有发送消息的时候才真正的跟服务器交互---把消息保存到服务器上,然后由另外的jms客户端监听并处理消息。
MessageConsumer.receive方法是阻塞的 ,最好单独起一个线程来专门监听消息
疑问二:tomcat在使用jms的时候是怎么启动的?配置tomcat在启动的时候绑定到jndi,试了几次,发送没有问题,但是接受不到,明天在调试一下。
还有讲tomcat jndi的配置brokerURL="vm://localhost" 改成tcp://localhost:61616就报错,我的理解是vm用于servlet容器的 tcp是用于应用程序的。
推荐阅读