activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marco Buss <marco.b...@gmx.de>
Subject Re: A problem with blobmessage on activemq 5.0
Date Wed, 21 May 2008 15:02:07 GMT

Hello IĆ³sev,

i have take a look on your code an make a few changes so the Blob
functionality will work. The easyest way for you is to use the latest stable
release 5.1.0 because in the former versions there is a bug, so that the
fileserver webapp didn`t work out of the box.
see: https://issues.apache.org/activemq/browse/AMQ-1624

Marco Buss


=========== snip ========================
import java.io.BufferedWriter;
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileWriter;
import java.io.IOException; 
import java.io.InputStream; 
import javax.jms.Destination; 
import javax.jms.JMSException; 
import javax.jms.MessageProducer; 
import javax.jms.QueueConnection; 
import javax.jms.QueueConnectionFactory; 
import javax.jms.QueueSession; 
import javax.jms.Session; 
import org.apache.activemq.ActiveMQConnection; 
import org.apache.activemq.ActiveMQConnectionFactory; 
import org.apache.activemq.ActiveMQSession; 
import org.apache.activemq.BlobMessage; 
import org.apache.activemq.command.ActiveMQBlobMessage; 
import org.apache.activemq.command.ActiveMQQueue; 

public class Sending { 
 /** 
  * @param args 
  * @throws IOException 
  */ 
 public static void main(String[] args) throws IOException { 
  // TODO Auto-generated method stub 
  long a1 = System.currentTimeMillis();
  
  /*
   * First you must tell how the Blob repository can be found.
   * Use ActiveMQ 5.1.0+ as broker because the fileserver webapp works there
out of the box.
   */
  ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory( 
   
"tcp://localhost:61616?jms.blobTransferPolicy.defaultUploadUrl=http://localhost:8161/fileserver/");

  ActiveMQConnection conn = null; 
  ActiveMQSession session = null; 
  try { 
   conn = (ActiveMQConnection)cf.createConnection(); 
   session = (ActiveMQSession) conn.createSession(false,
Session.AUTO_ACKNOWLEDGE); 
   Destination destination = new ActiveMQQueue("Queue"); 
   MessageProducer producer = session.createProducer(destination);
   
   /*
    * !!!!!!!!!!!!!!!!!!!!!!!!!
    * very important. If it is set to true (default) the uploader is lost in
translation ;)
    * !!!!!!!!!!!!!!!!!!!!!!!!!
    */
   conn.setCopyMessageOnSend(false);
   
   File file = File.createTempFile("amq-data-file-", ".dat");
   // lets write some data
   BufferedWriter writer = new BufferedWriter(new FileWriter(file));
   writer.append("Hello World!");
   writer.close();
   
   /*
    * i have used an simple ascii file instead of the picture you want to
use
    */
   BlobMessage message = session.createBlobMessage(file); 
   
   /*
    * should only work if you receive the message 
    */
   //System.out.println(message.getInputStream());
    
   producer.send(message);
   
   /*
    * After all you can see a new file under
$Brokerlocation$/webapps/fileserver/
    */
  } catch (JMSException e) { 
   e.printStackTrace(); 
  } finally { 
   try { 
    if (session != null) { 
     session.close(); 
    } 
    if (conn != null) { 
     conn.close(); 
    } 
   } catch (JMSException ex) { 
   } 
  } 
  a1 = System.currentTimeMillis() - a1; 
  System.out.println(a1); 
 } 
}
-- 
View this message in context: http://www.nabble.com/A-problem-with-blobmessage-on-activemq-5.0-tp15523989s2354p17364301.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message