无法将本地文件发送到activeMQ

时间:2016-02-16 23:13:14

标签: blob activemq

我正在使用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();
  }
}

这是我一直得到的错误

enter image description here

现在我读到了一些关于如何使用http或ftp服务器来完成这项工作的内容,但在ActiveMQ's website上看起来他们只是在本地文件示例中使用文件位置。我真的需要设置http或ftp服务器才能通过ActiveMQ发送本地文件吗?

1 个答案:

答案 0 :(得分:2)

是的,当使用blob时,您需要使用带外传输,请在以下位置查看更多详细信息:http://activemq.apache.org/blob-messages.html

然后你需要设置所选的,如ftp,http等,并将依赖项添加到客户端类路径。

但是还记得消息代理不是存储大文件的数据库或文件系统。为此使用别的东西。