当前位置: 首页 > 知识库问答 >
问题:

Blob消息的ActiveMQ连接Url

祁绪
2023-03-14

我的应用程序有一个远程ActiveMQ服务器和嵌入式ActiveMQ服务器。当我发送文本消息时,它正在工作。但是当我尝试发送Blob消息时,它会抛出一个javax.jms.JMSException,由java.net.MalformedURLExceptionjava.lang.NumberFormatException引起。

我的经纪商网址

String broker1 = "tcp://localhost:7005?jms.blobTransferPolicy.defaultUploadUrl=http://localhost:61617";

其中< code > TCP://localhost:7005 是嵌入式代理,而< code > http://localhost:61617 是远程代理。

我的生产者代码

File file=new File("C:/Users/xxx/Downloads/1234.txt");

ActiveMQConnection connection = ActiveMQConnection.makeConnection(broker);
connection.start();
ActiveMQSession session = (ActiveMQSession) connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create the destination (Topic or Queue)
Destination destination = session.createQueue("test");
MessageProducer producer = session.createProducer(destination);

BlobMessage message = session.createBlobMessage(file);
System.out.println("upload started");
producer.send(message);
System.out.println("upload finished");
session.close();
connection.close();

共有1个答案

邰棋
2023-03-14

URL应该是这样的< code > embededbroker?JMS . blobtransferpolicy . defaultuploadurl = external URL

如果嵌入式URL失败,则外部URL将used.By默认的Activemq在此链接中提供文件服务器超文本传输协议://(Activemq服务器ip): portnumber/fileserver

例如,如果在本地主机网址上运行的 activemq 服务器应 http://localhost:8161/fileserver/

它支持HTTP或FTP或SCP或其他点对点协议。

 类似资料:
  • “ActiveMQ中Blob消息传递的持久性”? "我们不能使用数据库(KahaDB)来Blob消息URL吗?" “我们可以像在远程activemq服务器中一样在嵌入式代理中创建文件服务器吗?”

  • 我的代码中有一个Spring JmsListener。它接收和消费消息2天,但突然在这2天后,它没有收到来自外部Activemq的消息。然而,它的队列中有一些挂起的消息。当我重置Activemq和消费者时,消费者会收到大量消息。当消息挂起时,连接到Activemq的消费者(代表Spring致动器日志)。日志和配置显示Activemq没有将消息推送给消费者。我有另一个像这个消费者一样的服务从其他队列

  • 如果我创建上面的类并尝试在tomcat7上部署war,我会看到以下错误。

  • 因此,我使用Spring integration链接JMS和ActiveMQ,如下所示:- 如何使其工作,以便发送到此队列并从中接收消息?请帮忙。

  • 我们有一个场景,在捕获异常之后,我们使用Mule(我知道是3.4版——旧版)回滚JMS事务。ActiveMQ应该在提交事务之前将消息保留在队列上(以使其持久化),或者在Mule启动回滚后,根据回滚设置重新传递消息。 然而,似乎在回滚之后,消息不会被重新传递,而是位于队列连接上“阻止”进一步的消息。就好像没有收到回滚消息一样。有人知道为什么不退还吗? 从日志中提取:

  • 我刚刚开始学习Netty,想慢慢来真正理解它是如何工作的。我有一个基于独立套接字测试程序的初始用例: 从客户端连接到服务器时,立即发送消息并处理响应 很简单...或者我是这么想的。我已经看了好几天了,不太明白为什么它的表现不如预期。 这是最初的测试程序,它再次简单地连接到远程服务器,并立即向服务器写入字节缓冲区。然后服务器立即发送一个ack响应,该响应被写入控制台。 我用Netty做了同样的测试,