Hi Suresh, Could you give more details?
Using the following very simple code, it is working for files of 8 kb and also for files of 14 MB. Regards, Sébastien ---------------------- import java.io.File; import java.io.IOException; import java.io.InputStream; import javax.jms.Destination; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.MessageProducer; 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.ActiveMQQueue; public class ActiveMQBlobExperiment { /** * This method will produce a file on the queue and will save it under the $brokerLocation$/webapps/fileserver/. * * @param file */ public static void produce(File file){ ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("tcp://localhost:61616?jms.blobTransferPolicy.defaultUploadUrl=http://localhost:8161/fileserver/"); try { ActiveMQConnection connection = (ActiveMQConnection) cf.createConnection(); ActiveMQSession session = (ActiveMQSession) connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = new ActiveMQQueue("BlobQueue"); MessageProducer producer = session.createProducer(destination); connection.setCopyMessageOnSend(false); BlobMessage message = session.createBlobMessage(file); producer.send(message); // Clean up producer.close(); session.close(); connection.close(); } catch (Exception e) { e.printStackTrace(); System.exit(-1); } } public static void consume(){ try { ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616?jms.blobTransferPolicy.defaultUploadUrl=http://localhost:8161/fileserver/"); ActiveMQConnection conn = (ActiveMQConnection) connectionFactory.createConnection(); conn.start(); ActiveMQSession session = (ActiveMQSession) conn.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = new ActiveMQQueue("BlobQueue"); MessageConsumer consumer = session.createConsumer(destination); // Wait for a message Message message = consumer.receive(1000); if (message instanceof BlobMessage) { BlobMessage blobMessage = (BlobMessage) message; InputStream in = blobMessage.getInputStream(); StringBuffer out = new StringBuffer(); byte[] b = new byte[4096]; for (int n; (n = in.read(b)) != -1;) { out.append(new String(b, 0, n)); } System.out.println("Text Blob Content: " + out.toString()); } else { System.out.println("Received: " + message); } // Clean up consumer.close(); session.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); System.exit(-1); } } public static void main(String[] args) throws IOException { File smallFile = new File("SmallFile.dat"); // <---- set the path to the small file here!! File bigFile = new File("BigFile.dat"); // <---- set the path to the big file here!! produce(smallFile); consume(); produce(bigFile); consume(); } } Le contenu de ce courriel s'adresse au destinataire seulement. Il contient de l'information pouvant être confidentielle. Vous ne devez ni le copier ni l'utiliser ni le divulguer à qui que ce soit à moins que vous soyez le destinataire ou une personne désignée autorisée. Si vous le receviez par erreur, veuillez nous aviser immédiatement et le détruire. The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it. From: susuguna [mailto:[EMAIL PROTECTED] Sent: Monday, June 09, 2008 8:17 AM To: users@activemq.apache.org Subject: Getting IllegalAgrEception while Sending BlobMessage Hi , I am trying a simple producer consumer application for BlobMessage it works fine for files of size 8 kb if I send file of size more than 8 MB it throws an exception in the activemq console ERROR log - EXCEPTION java.lang.IllegalArgumentException at java.nio.Buffer.position(Buffer.java:218) at org.mortbay.io.nio.NIOBuffer.poke(NIOBuffer.java:142) at org.mortbay.io.AbstractBuffer.put(AbstractBuffer.java:391) at org.mortbay.jetty.HttpParser.reset(HttpParser.java:844) at org.mortbay.jetty.HttpConnection.destroy(HttpConnection.java:131) at org.mortbay.jetty.AbstractConnector.connectionClosed(AbstractConnector.java:785) at org.mortbay.jetty.nio.SelectChannelConnector.access$100(SelectChannelConnector.java:64) at org.mortbay.jetty.nio.SelectChannelConnector$1.endPointClosed(SelectChannelConnector.java:92) at org.mortbay.io.nio.SelectChannelEndPoint.doUpdateKey(SelectChannelEndPoint.java:382) at org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:337) at org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:166) at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:124) at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:537) what could be the problem? -- View this message in context: http://www.nabble.com/Getting-IllegalAgrEception-while-Sending-BlobMessage-tp17731668p17731668.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.