Java把文件放入IBM_MQ队列的代码
一、概述
以下代码可以实现读取一个文件夹内的所有文件,然后将文件转为字节流、放入IBM_MQ队列中(发送方代码);
接收方获取到流后转为文件即可。
注意,以下代码的字节流由两部分组成,约定的字符串+文件,接收方也需要按格式接收;如果不需要这样写,就自行修改,只发送文件即可。
二、代码
1.需要的jar包
com.ibm.mq-9.1.0.3.jar com.ibm.mq.jmqi-9.1.0.3.jar com.ibm.mq.allclient-9.0.0.jar
2.配置类ConfigUtil.java
这个类里有些ibm_mq的配置相关,例如队列名称等,代码如下:
import java.util.HashMap;
/**
* 配置类
*/
public class ConfigUtil {
//mq服务器的ip
private static final String IBM_MQ_host = "10.123.123.123";
//queue
private static final String IBM_MQ_Queue = "xxx.xxx.queue";
//mq管理器的名字
private static final String IBM_MQ_Manager = "xxx.xxx.manager";
//channel
private static final String IBM_MQ_channel = "xxx.xxx.CHANNEL";
//port
private static final String IBM_MQ_port = "1414";
//ccsid
private static final String IBM_MQ_ccsid = "1381";
//待上传的文件夹路径
private static final String FILE_PATH = "f:/pdf/";
private static final HashMap<String,String> map;
static {
map = new HashMap();
map.put("IBM_MQ_host",IBM_MQ_host);
map.put("IBM_MQ_channel",IBM_MQ_channel);
map.put("IBM_MQ_port",IBM_MQ_port);
map.put("IBM_MQ_ccsid",IBM_MQ_ccsid);
map.put("IBM_MQ_Queue",IBM_MQ_Queue);
map.put("IBM_MQ_Manager",IBM_MQ_Manager);
map.put("FILE_PATH",FILE_PATH);
}
private static final ConfigUtil cu = new ConfigUtil();
public static ConfigUtil getInstance(){
return cu;
}
public static HashMap<String,String> getConfigMap(){
return map;
}
}
3.工具类IBMMQUtil.java
这个类是发送mq的工具类,代码如下:
4.主类Main.java
这个类是程序入口类,里面有main方法,代码如下:
import java.io.File;
public class Main {
/**
* main方法,可以把文件转为字节流放入ibm_mq队列(任意文件都行,不是只pdf才行)
*/
public static void main(String[] args) throws Exception {
//调用把pdf放入ibm_mq队列的方法
//这个是文件夹路径,会把文件夹里的所有文件都推送过去
uploadPdf(ConfigUtil.getInstance().getConfigMap().get("FILE_PATH"));
}
public static void uploadPdf(String path){
File file=new File(path);
//找到文件夹下的所有文件的名字
String[] names=file.list();
System.out.println("开始执行pdf推送IBM_MQ,待推送文件夹为--"+path);
boolean flag=false;
int count=0;
for(String name:names){
System.out.println("文件名称为:"+name);
String fwpath=path+name;//实际文件地址
File File;
try {
File = new File(fwpath);
//传入文件路径,mq队列名,mq管理器名,文件名
flag = IBMMQUtil.upload(fwpath, ConfigUtil.getInstance().getConfigMap().get("IBM_MQ_Queue"),ConfigUtil.getInstance().getConfigMap().get("IBM_MQ_Manager"), name);
if(flag==true){//根据调用方法是否成功怕段是否删除服务器上的文件
System.out.println("上传成功,返回true");
if (File.exists()) {
//File.delete();
//System.out.println("删除上传成功的文件");
}
}
count = count+1;
} catch (Exception e) {
System.out.println("文件上传出现异常!");
e.printStackTrace();
}
}
System.out.println("推送所有文件结束");
}
}
