2011-02-24 64 views
2

我有一個Spring JMS偵聽器,它接收BytesMessage/JMSBytesMessage。 我想將此消息轉換爲PDF文件並將其寫入驅動器。JMS onMessage ByteMessage寫入PDF文件

public void onMessage(Message message) { 

BytesMessage bmsg = (BytesMessage) message; 

ByteArrayOutputStream bout = new ByteArrayOutputStream(); 


} 

我知道我需要做的是這樣msg.readBytes,但我無法把一切融合在一起......可能有人提供了一些線索。

感謝

回答

2

一些簡單的像這應該工作:

public void onMessage(Message message) { 
    try { 
     BytesMessage bytesMessage = (BytesMessage) message; 

     // copy data into a byte[] buffer 
     int dataSize = (int) bytesMessage.getBodyLength(); 
     byte[] buffer = new byte[dataSize]; 
     bytesMessage.readBytes(buffer, dataSize); 

     // now write the buffer to a file 
     File outputFile = new File("/path/to/file.pdf"); 
     FileOutputStream fileOutput = new FileOutputStream(outputFile); 
     try { 
     fileOutput.write(buffer); 
     } finally { 
     fileOutput.close(); 
     } 
    } catch (Exception ex) { 
     // handle exception 
    } 
} 

這應該工作,只要細如數據量不是很大。

+0

任何超過10Mb的東西,您可能需要配置JMS提供程序,我知道SonicMQ拒絕大於10Mb的消息,只是要記住。 – raffian 2013-10-24 20:40:35