标签: jms

JMS - 常见用途

JMS和消息驱动Bean的常见和有用用途是什么?

java ejb jms

2
推荐指数
2
解决办法
546
查看次数

Jboss Messaging JMS

我成功地将消息发送到ReceiverQueue我的localhost Jboss服务器上的队列名称,如何检索我发送给它的消息,或者如何检查队列中是否有任何消息(如果有的话).或者我可以得到某种解释是什么是最好的方法.谢谢

也可以接受有效的发送/接收教程.任何能让我发送到队列并从该队列接收消息的东西都会得到接受的答案.

我正在使用Spring.

我想要一个使用bean注入的应用程序上下文来实现它的解决方案.

java jms jboss-messaging

2
推荐指数
1
解决办法
7963
查看次数

在servlet中注入jms资源和MDB的最佳实践

使用ejb 3.1,servlet 3.0(glassfish服务器v3)

场景:我有MDB,它监听jms消息并处理其他会话bean(无状态).Servelet注入jms资源.

问题1:为什么servlet在使用静态声明时不能注入jms资源?

@Resource(mappedName = "jms/Tarturus")
private static ConnectionFactory connectionFactory;

@Resource(mappedName = "jms/StyxMDB")
private static Queue queue;


private Connection connection;
Run Code Online (Sandbox Code Playgroud)

@PostConstruct
    public void postConstruct() {
        try {
            connection = connectionFactory.createConnection();
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }

    @PreDestroy
    public void preDestroy() {
        try {
            connection.close();
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

[#| 2010-05-03T15:18:17.118 + 0300 |警告| glassfish3.0 | javax.enterprise.system.container.web.com.sun.enterprise.web | _ThreadID = 35; _ThreadName =线程1; | StandardWrapperValve [WorkerServlet]:PWC1382:为servlet WorkerServlet分配异常com.sun.enterprise.container.common.spi.util.InjectionException:在com.sun上为类ua.co.rufous.server.services.WorkerServiceImpl创建托管对象时出错.企业.container.common.impl.util.InjectionManagerImpl.createManagedObject(InjectionManagerImpl.java:312)位于com.sun.enterprise.web.WebModule的com.sun.enterprise.web.WebContainer.createServletInstance(WebContainer.java:709). createServletInstance(WebModule.java:1937)at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1252)引起:com.sun.enterprise.container.common.spi.util.InjectionException:异常尝试注入未解决的Message-Destination-Ref ua.co.rufous.server.services.WorkerServiceImpl/queue @ …

servlets jms message-driven-bean java-ee-6 ejb-3.1

2
推荐指数
1
解决办法
5955
查看次数

JMS和XMPP有什么区别?

似乎xmpp在聊天应用程序中用作协议,但JMS也支持多种接收器模式.

似乎JMS用于金融消息系统,但xmpp也可能支持持久性和可靠的交付.

有人可以概述这两个协议吗?

xmpp jms

2
推荐指数
1
解决办法
1704
查看次数

如何导入jms

我刚刚开始使用Eclipse来测试一些jms代码.问题是...... Eclipse使用JRE标准库; 当我写代码时

import javax.jms.*;

没有lib被识别出来.所以我的问题是如何导入jms?

java eclipse jms

2
推荐指数
1
解决办法
9626
查看次数

将消息放入队列的第一条路由和第二条读取消息的路由

我有Camel和JMS的问题.

我的路线非常简单:

  @Override
    protected RouteBuilder[] createRouteBuilders() throws Exception {
        createJmsComponent();

        RouteBuilder route1 = new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("direct:startpoint")
                .log("TO JMS: ${body}")
                .to("jms://queue:QUEUE.NAME.OUT?replyTo=QUEUE.NAME.IN&replyToType=Exclusive")
                ;
            }
        };

        RouteBuilder route2 = new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("jms://queue:QUEUE.NAME.IN?receiveTimeout=10000")
                .log("FROM JMS: ${body}")
                ;
            }
        };
        return new RouteBuilder[]{route1, route2};
    }
Run Code Online (Sandbox Code Playgroud)

在日志中,我有我需要的东西:

2012-07-04 16:28:10,443 INFO  route1 - TO JMS: message
2012-07-04 16:28:13,477 INFO  route2 - FROM JMS: message
Run Code Online (Sandbox Code Playgroud)

但问题是我有异常:

2012-07-04 16:28:33,960 ERROR o.a.c.p.DefaultErrorHandler                        - Failed …
Run Code Online (Sandbox Code Playgroud)

jms apache-camel

2
推荐指数
1
解决办法
4544
查看次数

MQ(Websphere)连接问题java.lang.NoClassDefFoundError

我正在尝试从Java与MQ建立连接。我正在使用来自IBM的以下示例代码,但是可能已经过时了。我该如何解决该问题/我缺少什么?

import com.ibm.mq.*;            // Include the WebSphere MQ classes for Java package
import com.ibm.mq.jmqi.*;
import com.ibm.mq.constants.MQConstants;

public class MQSample
{
    private String qManager = "your_Q_manager";  // define name of queue
    // manager to connect to.
    private MQQueueManager qMgr;                 // define a queue manager
    // object
    public static void main(String args[]) {
        new MQSample();
    }

    public MQSample() {
        try {

            // Create a connection to the queue manager

            qMgr = new MQQueueManager(qManager);

            // Set up the options on the queue we …
Run Code Online (Sandbox Code Playgroud)

java database-connection jms ibm-mq

2
推荐指数
1
解决办法
7398
查看次数

删除JMS消息属性

我正在编写一个Java批处理,它是从队列(Oracle AQ)侦听消息并将它们发送到另一个队列(Tibco EMS),在那里它们由Tibco进程(BW)处理.

问题是Oracle AQ驱动程序会自动向消息添加一些属性(JMSXGroupID,JMSXGroupSeq),这些属性在由Tibco进程处理时会导致错误,因为它们具有错误值:JMSXGroupSeq应该是int但是设置为null.尝试解析消息属性时,Tibco出错了...

所以我想从所有消息中只删除这两个属性,但似乎jms api只提供了clearProperties()方法,但没有单个属性remove方法(我使用的是javax.jms.Message接口).

现在,我可以看到两个解决方案:

  1. 为这两个属性设置正确的值,因为我假设他们不会被Tibco进一步使用

  2. 读取所有属性并重建消息,而不会导致问题.但这种做法非常难看......

有没有人有其他解决方案?

java jms tibco-ems

2
推荐指数
1
解决办法
4253
查看次数

提取jms文本内容

我只想从jms消息中提取没有标题和属性的jms消息文本。要提取的JMS头:msg.getJMSCorrelationID(); 提取JMS属性:jmsMessage.getPropertyNames() 但是如何仅从消息中获取文本值?在下面的示例消息中,我只想提取“ hello queue ”。是否有Java函数可以执行此操作? jms消息样本

java jms message-queue

2
推荐指数
1
解决办法
4614
查看次数

当使用@Stateless bean时,Payara 5 @JMSConnectionFactory无法注入

我正在测试一些关于Paraya 5的JMS工作.具体来说是5.181.下面是我简单的无状态bean的代码. @JMSConnectionFactory失败!该JMSContext context变量始终null.然而@Resource(lookup = "jms/HelloWorldConnectionFactory")成功......任何想法为什么?我更喜欢使用JMSContext.

@Stateless
public class HelloWorldMessageSender {

    @JMSConnectionFactory("jms/HelloWorldConnectionFactory")
    protected JMSContext context;

    @Resource(lookup = "jms/HelloWorldConnectionFactory")
    protected ConnectionFactory connectionFactory;

    @Resource(lookup = "jms/HelloWorldQueue")
    protected Queue queue;

    public String send() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS");
        String txt = String.format("Hello world message %s", sdf.format(new Date()));
        if (context != null) {
            System.out.printf("Use JMSContext to produce%n");
            context.createProducer().send(queue, txt);
        }
        if (connectionFactory != null) {
            System.out.printf("Use ConnectionFactory to produce%n");
            try (
                Connection connection …
Run Code Online (Sandbox Code Playgroud)

java ejb jms cdi payara

2
推荐指数
1
解决办法
382
查看次数