欢迎来到天天文库
浏览记录
ID:9299025
大小:98.24 KB
页数:7页
时间:2018-04-27
《jms 使用 activemq 传送文件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JMS使用ActiveMQ传送文件这里使用的MQ中间件是开源的ActiveMQ,我们没有采用BytesMessage来按字节传送文件,而是ActiveMQ为我们提供了org.apache.activemq.BlobMessage,可以用它来传送大对象。org.apache.activemq.ActiveMQSession 中有以下几个创建BlobMessage对象的方法:createBlobMessage(URLurl)createBlobMessage(URLurl,booleandeletedByBroker)createBlobMessage(F
2、ilefile)createBlobMessage(InputStreamin)接收到BlobMessage消息后,可以调用其getInputStream()方法获得数据,然后写成磁盘文件,文件名、文件大小等可通过Message的getXxxProperty("Property.Name")取的。注意,传输入文件的时候,发送方创建ConnectionFactory时的brokerURL需要指定jms.blobTransferPolicy.uploadUrl或者jms.blobTransferPolicy.defaultUploadUrl属性为Activ
3、eMQ中fileserver应用的URI,即指定传输BlogMessage的 BlobTransferPolicy策略,参看ConfiguringtheBLOBTransferPolicy。先上图看真相,包括执行FileSender时选择文件,FileReciever在收到文件时会弹出保存文件的对话框,还有控制台的打印信息。具体来看例子,使用P2P队列的方式,你也可以用发布/订阅的方式,只是代码中创建的Destination类型不同。1.启动ActiveMQ在http://activemq.apache.org/activemq-531-release
4、.html 下载 ActiveMQ,然后解压,执行其中的bin/activemq.bat,控制台可以看到: INFO
5、ActiveMQConsoleathttp://0.0.0.0:8161/admin INFO
6、InitializingSpringrootWebApplicationContext INFO
7、Successfullyconnectedtotcp://localhost:61616 INFO
8、CamelConsoleathttp://0.0.0.0:8161/camel INFO
9、ActiveMQWebDemosathttp://0.0
10、.0.0:8161/demo INFO
11、RESTfulfileaccessapplicationathttp://0.0.0.0:8161/fileserver INFO
12、StartedSelectChannelConnector@0.0.0.0:8161表示启动成功了,假设运行ActiveMQ机器的IP地址是10.80.38.10。2.编写发送文件的程序FileSender.javaviewsourceprint?01.packagecom.unmi.jms;02. 03.importjava.io.File;04. 05.importjavax.j
13、ms.*;06.importjavax.swing.JFileChooser;07. 08.importorg.apache.activemq.*;09. 10./**11. *通过ActiveMQ发送文件的程序12. *@authorUnmi13. */14.publicclassFileSender{15. 16. /**17. *@paramargs18. *@throwsJMSException19. */20. publicstaticvoidmain(String[]args)throwsJMSExcep
14、tion{21. 22. //选择文件23. JFileChooserfileChooser=newJFileChooser();24. fileChooser.setDialogTitle("请选择要传送的文件");25. if(fileChooser.showOpenDialog(null)!=JFileChooser.APPROVE_OPTION){26. return;27. }28. Filefile=fileChooser.getSel
15、ectedFile();29. 30. //获取ConnectionFactor
此文档下载收益归作者所有