2015-06-05 5 views
1

I мое приложение У меня есть удаленный сервер ActiveMQ и встроенный сервер ActiveMQ. Когда я отправляю текстовые сообщения, он работает. Но когда я пытаюсь отправить сообщения Blob, он выдает javax.jms.JMSException, вызванный java.net.MalformedURLException и java.lang.NumberFormatException.URL-адрес подключения ActiveMQ для сообщений Blob

Мой брокер URL

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

tcp://localhost:7005 где есть встроенный брокер, и 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(); 
+0

Я думаю, вы должны использовать 'jms.blobTransferPolicy.uploadUrl', а не' jms.blobTransferPolicy.defaultUploadUrl'. См. Http://activemq.apache.org/blob-messages.html. – hemant1900

ответ

0

URL должен быть, как этот embededbroker?jms.blobTransferPolicy.defaultUploadUrl=externalurl

В случае отказа в вложенной URL, то внешний URL будет used.By по умолчанию ActiveMQ предоставляет файловый сервер в этой ссылке http://(activemq server ip):portnumber/fileserver

Например, если ваш сервер activemq, работающий на URL-адресе localhost, должен быть http://localhost:8161/fileserver/ Это

Он поддерживает HTTP или FTP или SCP или другой протокол «точка-точка».