I had faced the similar problem. you need to set policy like connectionFactory.getBlobTransferPolicy().setUploadUrl("http://127.0.0.1:8161/fileserver/");
Lou Parisi wrote: > > I am trying to send a BlobMessage with a file. I was able to get it to > work with ftp URL. This seems to send the URL and then use FTP to get the > file into the queue where I can then successfully write it out to a > directory. > > If I try to use an InputStream or File object to create the message I get > a connection refused exception. I have seen others write about this > problem in the forum but did not see any solution. I am using the latest > 5.2 download for my test. I am running as a JUnit test just to try it > out. The code for setup and execution along with the stackTrace for each > case are below. If anyone could help I would appreciate it. > > Does anyone have the BlobMessage working with a File reference to create > the message? > > -------- > setup: > -------- > broker = new BrokerService(); > broker.setUseJmx(true); > broker.addConnector("tcp://localhost:61616"); > broker.start(); > ActiveMQConnectionFactory connectionFactory = new > ActiveMQConnectionFactory(); > connectionFactory.setBrokerURL(BROKER_URL); > connection = (ActiveMQConnection) > connectionFactory.createConnection(); > connection.start(); > session = (ActiveMQSession) connection.createSession(false, > Session.AUTO_ACKNOWLEDGE); > destination = session.createQueue(QUEUE_NAME); > long time = new Date().getTime(); > outFile = new File(OUT_FILE_PATH + time + "." + > OUT_FILE_BASENAME); > --------- > sendFile: > --------- > //System.out.println("Getting file from " + ftpURLString); > //BlobMessage msg = session.createBlobMessage(ftpURL); > System.out.println("Getting file from " + > inFile.getAbsolutePath()); > //BlobMessage msg = session.createBlobMessage(inFile); > InputStream instr = new FileInputStream(inFile); > BlobMessage msg = session.createBlobMessage(instr); > MessageProducer producer = session.createProducer(destination); > System.out.println("Sending message ..."); > producer.send(msg); > > System.out.println("message sent."); > > ------------------- > StackTrace for File: > ------------------- > javax.jms.JMSException: Connection refused: connect > at > org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62) > at > org.apache.activemq.command.ActiveMQBlobMessage.onSend(ActiveMQBlobMessage.java:167) > at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1637) > at > org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:227) > at > org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241) > at > com.photomask.gate.blobsender.JmsBlobSenderTest.sendFile(JmsBlobSenderTest.java:112) > at > com.photomask.gate.blobsender.JmsBlobSenderTest.testSendBlob(JmsBlobSenderTest.java:92) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at junit.framework.TestCase.runTest(TestCase.java:164) > at junit.framework.TestCase.runBare(TestCase.java:130) > at junit.framework.TestResult$1.protect(TestResult.java:106) > at junit.framework.TestResult.runProtected(TestResult.java:124) > at junit.framework.TestResult.run(TestResult.java:109) > at junit.framework.TestCase.run(TestCase.java:120) > at junit.framework.TestSuite.runTest(TestSuite.java:230) > at junit.framework.TestSuite.run(TestSuite.java:225) > at > org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) > at > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) > Caused by: java.net.ConnectException: Connection refused: connect > at java.net.PlainSocketImpl.socketConnect(Native Method) > at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) > at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) > at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) > at java.net.Socket.connect(Socket.java:519) > at java.net.Socket.connect(Socket.java:469) > at sun.net.NetworkClient.doConnect(NetworkClient.java:157) > at sun.net.www.http.HttpClient.openServer(HttpClient.java:394) > at sun.net.www.http.HttpClient.openServer(HttpClient.java:529) > at sun.net.www.http.HttpClient.<init>(HttpClient.java:233) > at sun.net.www.http.HttpClient.New(HttpClient.java:306) > at sun.net.www.http.HttpClient.New(HttpClient.java:323) > at > sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:788) > at > sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:729) > at > sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:654) > at > sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:832) > at > org.apache.activemq.blob.DefaultBlobUploadStrategy.uploadStream(DefaultBlobUploadStrategy.java:59) > at > org.apache.activemq.blob.DefaultBlobUploadStrategy.uploadFile(DefaultBlobUploadStrategy.java:44) > at org.apache.activemq.blob.BlobUploader.upload(BlobUploader.java:51) > at > org.apache.activemq.command.ActiveMQBlobMessage.onSend(ActiveMQBlobMessage.java:164) > ... 23 more > > --------------------------- > StackTrace for InputStream: > --------------------------- > javax.jms.JMSException: Connection refused: connect > at > org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62) > at > org.apache.activemq.command.ActiveMQBlobMessage.onSend(ActiveMQBlobMessage.java:167) > at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1637) > at > org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:227) > at > org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241) > at > com.photomask.gate.blobsender.JmsBlobSenderTest.sendFile(JmsBlobSenderTest.java:115) > at > com.photomask.gate.blobsender.JmsBlobSenderTest.testSendBlob(JmsBlobSenderTest.java:93) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at junit.framework.TestCase.runTest(TestCase.java:164) > at junit.framework.TestCase.runBare(TestCase.java:130) > at junit.framework.TestResult$1.protect(TestResult.java:106) > at junit.framework.TestResult.runProtected(TestResult.java:124) > at junit.framework.TestResult.run(TestResult.java:109) > at junit.framework.TestCase.run(TestCase.java:120) > at junit.framework.TestSuite.runTest(TestSuite.java:230) > at junit.framework.TestSuite.run(TestSuite.java:225) > at > org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) > at > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) > Caused by: java.net.ConnectException: Connection refused: connect > at java.net.PlainSocketImpl.socketConnect(Native Method) > at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) > at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) > at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) > at java.net.Socket.connect(Socket.java:519) > at java.net.Socket.connect(Socket.java:469) > at sun.net.NetworkClient.doConnect(NetworkClient.java:157) > at sun.net.www.http.HttpClient.openServer(HttpClient.java:394) > at sun.net.www.http.HttpClient.openServer(HttpClient.java:529) > at sun.net.www.http.HttpClient.<init>(HttpClient.java:233) > at sun.net.www.http.HttpClient.New(HttpClient.java:306) > at sun.net.www.http.HttpClient.New(HttpClient.java:323) > at > sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:788) > at > sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:729) > at > sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:654) > at > sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:832) > at > org.apache.activemq.blob.DefaultBlobUploadStrategy.uploadStream(DefaultBlobUploadStrategy.java:59) > at org.apache.activemq.blob.BlobUploader.upload(BlobUploader.java:53) > at > org.apache.activemq.command.ActiveMQBlobMessage.onSend(ActiveMQBlobMessage.java:164) > ... 23 more > > > > -- View this message in context: http://old.nabble.com/BlobMessage-tp23088120p28777264.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.