0

我目前有一个骆驼路线设置从一个activemq主题中获取一些东西,通过一个.xsl传递它来转换它,然后将它传递给另一个activemq主题。我现在唯一的问题是我不确定如何真正开始将 xml 文件发布到队列中以启动整个过程。

我曾想过以字符串形式发送整个内容,但我不确定 xsl 文件是否会接收到它来转换它。如果有人有任何将 xml 文件发送到 activemq 队列或主题的提示或方法,我们将不胜感激!

谢谢!

4

2 回答 2

1

1) ActiveMQ 带有一个 Web 控制台,您可以在其中将消息发送到队列或主题。默认情况下,此控制台在

http://localhost:8161/admin

ActiveMQ 发行版中有一个 WebConsole 自述文件,其中提供了更多详细信息。

2) 您也可以从 JConsole 发送消息(例如 JMX)。

3)替代方法是使用骆驼路线,从文件目录消费并发送到主题。然后您可以将文件放到目录中,让 Camel 拾取并发送文件。

<route>
  <from uri="file:somedir/inbox"/>
  <to uri="activemq:topic:someTopicName"/>
</route>
于 2013-02-09T08:45:29.987 回答
0
    请参考以下代码。
    在这里,我们将收到消息简单文件创建,然后写入来自 BytesMessageObject 的字节,直到 EOF 发生。
                BytesMessage bm = (BytesMessage)topicSubscriber.receiveNoWait(); // 接收(1000);
                    System.out.println("bm-->"+bm);
                    如果(BM!=空){
                     文件 file = new File("D:/jms/myfie.txt"); //创建的文件
                     FileOutputStream fos = new FileOutputStream(file);//创建文件输出流
                     BufferedOutputStream outBuf = new BufferedOutputStream(fos);//创建缓冲区输出流
                     诠释我;
                     while((i=bm.readInt())!=-1)//读取unitil EOF表示-1
    {
                        outBuf.write(i);//写入文件
                     }
                     System.out.println("outBuf-->"+outBuf);
                     System.out.println(file.isFile());
                     outBuf.close();//关闭输出缓冲区
                     fos.close();//关闭文件输出流
                    }

    然后在这里打开文件
    写在 BytesMessageObject 中。
    跨队列发送            

                发件人代码:

                File f=new File("D:/Import.txt");//获取文件句柄
                          System.out.println("是文件"+f.isFile());
                          BytesMessage bm = topicSession.createBytesMessage();//创建字节消息
                          InputStream in= new FileInputStream(f);//用文件句柄创建输入流
                          BufferedInputStream inBuf= new BufferedInputStream(in);//创建缓冲区输入流
                          诠释我;
                          while((i=inBuf.read())!=-1)//读取文件直到到达EOF(-1){
                             bm.writeInt(i);//写入字节消息
                          }
                          System.out.println("之后");
                          //添加一个eof
                          bm.writeInt(-1);//在字节消息中添加EOF
                          System.out.println("BM = "+bm);
                          topicPublisher.send(bm);///发送字节消息
                          System.out.println("发送成功");
                          topicConnection.stop();//停止连接

    
于 2015-07-23T12:42:19.590 回答