2013-02-08 2 views
0

В настоящее время у меня есть маршрут верблюда, настроенный на то, чтобы взять что-то из темы activemq, передать его через .xsl, чтобы преобразовать его, а затем передать в другую тему activemq. Моя единственная проблема прямо сейчас - я не совсем уверен, как на самом деле начать публикацию xml-файла в очередь в первую очередь для начала всего этого процесса.Отправка XML-файла в activemq

Я думал о том, чтобы отправить все это только в строку, но я не был уверен, что это будет связано с файлом xsl, чтобы преобразовать его. Если у кого есть какие-либо советы или способы отправки XML-файлов в очередь или тему activemq, вам будет очень благодарна ваша помощь!

Спасибо!

ответ

1

1) ActiveMQ поставляется с веб-консолью, где вы можете отправлять сообщения в очередь или тему. Эта консоль по умолчанию доступно на

http://localhost:8161/admin 

Существует ридй файл WebConsole в распределении ActiveMQ, что дает ваши дальнейшие детали.

2) Вы также можете отправить сообщение от JConsole (например, JMX).

3) И альтернативой является использование маршрута Camel, который потребляется из каталога файлов и отправляется на эту тему. Затем вы можете отбросить файл в каталоге и позволить Camel pickup и отправить файл.

<route> 
    <from uri="file:somedir/inbox"/> 
    <to uri="activemq:topic:someTopicName"/> 
</route> 
0
 

    Please refer the below code. 
    Here we will receive message simple file creation then writing bytes coming from BytesMessageObject until EOF occurs. 
       BytesMessage bm = (BytesMessage)topicSubscriber.receiveNoWait(); // receive(1000); 
        System.out.println("bm-->"+bm); 
        if(bm !=null){ 
        File file = new File("D:/jms/myfie.txt"); //file created 
        FileOutputStream fos = new FileOutputStream(file);//create fileoutput stream 
        BufferedOutputStream outBuf = new BufferedOutputStream(fos);//create bufferoutputstream 
        int i; 
        while((i=bm.readInt())!=-1)//read unitil EOF means -1 
    { 
         outBuf.write(i);//write it to the file 
        } 
        System.out.println("outBuf-->"+outBuf); 
        System.out.println(file.isFile()); 
        outBuf.close();//close output buffer 
        fos.close();//close file ouput stream 
        } 

    Here the file is opened then 
    Wrote in BytesMessageObject. 
    Sent Across the Queue    

       Sender code : 

       File f=new File("D:/Import.txt");//get file handle 
          System.out.println("is File "+f.isFile()); 
          BytesMessage bm = topicSession.createBytesMessage();//create bytes message 
          InputStream in= new FileInputStream(f);//create input stream with file handle 
          BufferedInputStream inBuf= new BufferedInputStream(in);//create buffer input stream 
          int i; 
          while((i=inBuf.read())!=-1)//read file until EOF(-1) is reached{ 
          bm.writeInt(i);//write in bytesmessage 
          } 
          System.out.println("after while"); 
          //adding an eof 
          bm.writeInt(-1);//add EOF in bytes message 
          System.out.println("BM = "+bm); 
          topicPublisher.send(bm);///send the bytes message 
          System.out.println("sent successfully"); 
          topicConnection.stop();//stop connection 

+0

Пожалуйста, не просто свалка код. Объясните, как ваш код на самом деле * решает * проблему в вопросе. – ekad

+0

@ekad это хорошо сейчас ответ объяснения –

Смежные вопросы