我正在使用activeMQ,我需要将图像写入其中。出于某种原因,我可以在网络上指定图像,但如果我尝试使用本地图像,那么它就不起作用。
这是我的代码
public class AMQmessageSender{
static String ActiveMQ_URL = "tcp://UTMSA603:61616";
static String localPicURL = "path_to_my_local_file";
public static void main(String[] args){
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQ_URL);
Connection connection = (ActiveMQConnection) connectionFactory.createConnection();
connection.start();
ActiveMQSession session = (ActiveMQSession) connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue(“blobs”);
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode (DeliveryMode.PERSISTENT);
File file = new File(localPicURL);
BlobMessage message = session.createBlobMessage(file);
producer.send(message);
session.close();
connection.close();
}
}
这是我一直得到的错误
现在我读到了一些关于如何使用http或ftp服务器来完成这项工作的内容,但在ActiveMQ's website上看起来他们只是在本地文件示例中使用文件位置。我真的需要设置http或ftp服务器才能通过ActiveMQ发送本地文件吗?
答案 0 :(得分:2)
是的,当使用blob时,您需要使用带外传输,请在以下位置查看更多详细信息:http://activemq.apache.org/blob-messages.html
然后你需要设置所选的,如ftp,http等,并将依赖项添加到客户端类路径。
但是还记得消息代理不是存储大文件的数据库或文件系统。为此使用别的东西。