⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bocbc4xml.java

📁 MQ通讯,FTP,上传,下载,批量调度处理等等..从静态的xml配置文件中读取,不需要在WEB应用时自动加载,所以修改xml的配置时不需要重新启动应用,每次操作会去读一次xml配置
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
package com.blackcrow.utils;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.sql.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.apache.log4j.Logger;
import org.jdom.*;
import org.jdom.input.SAXBuilder;

import com.ibm.mq.MQC;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;

import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;


public class BocBC4xml {
	final static Logger logger=Logger.getLogger(BocBC4xml.class);

	public static boolean FTP(List MSGBean){
		boolean flag=false;
		TelnetOutputStream os = null;
		FileInputStream is = null;
		FtpClient ftpClient = null;
		try{
			ConfigBean CB=(ConfigBean)loadConfig("ftp").get(0);
			String serverip=CB.getFtpServerIp();
			String serveruser=CB.getFtpServerUser();
			String serverpswd=CB.getFtpServerPswd();
			String serverport=CB.getFtpServerPort();
			String serverpath=CB.getFtpRemotePath();
			String localpath=CB.getFtpLocalPath();
			
			ftpClient=new FtpClient();
			ftpClient.openServer(serverip, Integer.parseInt(serverport));
			ftpClient.login(serveruser, serverpswd);
			ftpClient.cd(serverpath);
			ftpClient.binary();
			
			if(MSGBean.size()<1){
				logger.error("FTP.() method parament Exception..");
				return flag;
			}
			String MSG_TYPE=null;
			String SYS_ID=null;
			String TERM_ID=null;
			String TELL_NO=null;
			String SRV_CODE=null;
			String RPT_FLAG=null;
			String SND_COUNT=null;
			String ORG_ID=null;
			String SEND_TIME=null;
			String VALID_TIME=null;
			String TIME_OUT =null;
			String MODE_NO =null;
			String TRACE_NO=null;
			//*************
			String TXN_DATE=null;
			String TXN_TIME=null;
			String MSG_CONT=null;
			String TAG_TEL=null;
			
			String FileName=null;
			String DETAIL_NO="01";
			File localfile=null;
			FileOutputStream fos = null;
			OutputStreamWriter osw = null;
			BufferedWriter writer = null;
			
			ConfigBean bean=(ConfigBean)loadConfig("msg").get(0);
			
			ORG_ID=bean.getMsgORG_ID();
			TERM_ID=bean.getMsgTERM_ID();
			SRV_CODE=bean.getMsgSRV_CODE();
			RPT_FLAG=bean.getMsgRPT_FLAG();
			SEND_TIME=bean.getMsgSEND_TIME();
			VALID_TIME=bean.getMsgVALID_TIME();
			TIME_OUT=bean.getMsgTIME_OUT();
			MODE_NO=bean.getMsgMODE_NO();
			TXN_TIME=bean.getMsgTXN_TIME();
			TRACE_NO=bean.getMsgTRACE_NO();
			
			String BAK_FLD="";
			for(int i=0;i<MSGBean.size();i++){
				
				MSG_CONT=((ConfigBean)MSGBean.get(i)).getMsgMSG_CONT();
				TAG_TEL=((ConfigBean)MSGBean.get(i)).getMsgTAG_TEL();
				
				if(isBlank(MSG_CONT)||isBlank(TAG_TEL)){
					logger.error("短信内容,手机号码存在空值");
					return flag;
				}
				
				String msg=RPT_FLAG+"^"+TRACE_NO+"^"+MODE_NO+"^"+TAG_TEL+"^"+ORG_ID+"^"+TERM_ID
							+"^"+VALID_TIME+"^"+SEND_TIME+"^"+SRV_CODE+"^"+BAK_FLD+"^"+BAK_FLD
							+"^"+MSG_CONT;
				if(i==0){
					FileName="DAT_"+getDT().substring(0,10)+SRV_CODE.substring(0,5)+DETAIL_NO+".TXT";
					localfile=new File(localpath+FileName);
					logger.debug("localpath+filename:"+localpath+FileName);
					if(!localfile.exists()){
						localfile.createNewFile();
						logger.error("The file is not exist,create it..");
					}
					fos = new FileOutputStream(localfile);
					osw = new OutputStreamWriter(fos);
					writer = new BufferedWriter(osw);
					writer.write(msg);
					writer.flush();
					fos.close();
					osw.close();
					writer.close();
				}else{
					fos = new FileOutputStream(localfile,true);
					osw = new OutputStreamWriter(fos);
					writer = new BufferedWriter(osw);
					writer.newLine();
					writer.write(msg);
					if(i+1==MSGBean.size()){
						writer.newLine();
						writer.write("<end>");
					}
					writer.flush();
					fos.close();
					osw.close();
					writer.close();
				}
			}
			
			os = ftpClient.put(serverpath+FileName);
			is = new FileInputStream(localfile);
			byte[] bytes = new byte[1024];
			int c;
			while ((c = is.read(bytes)) != -1) {
				os.write(bytes, 0, c);
			}
			if (is != null) {
				is.close();
			}
			if (os != null) {
				os.close();
			}
						
			flag=true;
			logger.debug("�ϴ��ļ��ɹ�..");
		}catch(Exception er){
			logger.error("FTP.() method Exception..");
			logger.error(er);
			er.printStackTrace();
		}finally{
			if (ftpClient != null && ftpClient.serverIsOpen()) {
				try{
					ftpClient.closeServer();
				}catch(Exception er){
					logger.error("close ftp connection exception..");
					logger.error(er);
				}
			}
		}
		logger.debug("�ϴ��ļ�����..");
		return flag;
	}
	public static boolean MQ(ConfigBean MSG){
		boolean flag=false;
		try{
//			XMLBean XB=getInfo1();
			ConfigBean CB=(ConfigBean)loadConfig("mq").get(0);
			String hostName=CB.getMqServer();
			String channelName=CB.getMqChannel();
			int port=Integer.parseInt(CB.getMqPort());
			int CCSID=Integer.parseInt(CB.getMqCCSID());
			String queueManager=CB.getMqQueueManager();
			String queueName=CB.getMqQueueName();
			
			MQEnvironment.hostname = hostName;
			MQEnvironment.channel = channelName;
			MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES);
			MQEnvironment.port = port;
			MQEnvironment.CCSID = CCSID;
			MQQueueManager qMgr=new MQQueueManager(queueManager);
			int openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;
			MQQueue queue=qMgr.accessQueue(queueName,openOptions,null,null,null);
			MQPutMessageOptions pmo = new MQPutMessageOptions();
			MQMessage outMsg = new MQMessage();
//			outMsg.format = MQC.MQFMT_STRING;
			
			ConfigBean bean=(ConfigBean)loadConfig("msg").get(0);
			
			String MSG_TYPE=bean.getMsgMSG_TYPE();
			String SYS_ID=bean.getMsgSYS_ID();
			String TERM_ID=bean.getMsgTERM_ID();
			String TELL_NO=bean.getMsgTELL_NO();
			String SRV_CODE=bean.getMsgSRV_CODE();
			String RPT_FLAG=bean.getMsgRPT_FLAG();
			String SND_COUNT=bean.getMsgSND_COUNT();
			String ORG_ID=bean.getMsgORG_ID();
			String SEND_TIME=bean.getMsgSEND_TIME();
			String VALID_TIME=bean.getMsgVALID_TIME();
			String TIME_OUT = bean.getMsgTIME_OUT();
			String MODE_NO = bean.getMsgMODE_NO();
			String TRACE_NO=bean.getMsgTRACE_NO();
			
			String TXN_DATE=MSG.getMsgTXN_DATE();
			String TXN_TIME=MSG.getMsgTXN_TIME();
			String MSG_CONT=MSG.getMsgMSG_CONT();
			String TAG_TEL=MSG.getMsgTAG_TEL();
			
			if(isBlank(TXN_DATE)||isBlank(TXN_TIME)||isBlank(MSG_CONT)||isBlank(TAG_TEL)){
				logger.error("交易日期,交易时间,短信号码,短信内容中存在空值..");
				return flag;
			}
			String BAK_FLD="";
			String massage="<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" +
					"<txnreq>" +
					"<head>" +
					"<MSG_TYPE>"+MSG_TYPE+"</MSG_TYPE>" +
					"<SYS_ID>"+SYS_ID+"</SYS_ID>" +
					"<ORG_ID>"+ORG_ID+"</ORG_ID>" +
					"<TERM_ID>"+TERM_ID+"</TERM_ID>" +
					"<TELL_NO>"+TELL_NO+"</TELL_NO>" +
					"<SRV_CODE>"+SRV_CODE+"</SRV_CODE>" +
					"<TXN_DATE>"+TXN_DATE+"</TXN_DATE>" +
					"<TXN_TIME>"+TXN_TIME+"</TXN_TIME>" +
					"<SND_COUNT>"+SND_COUNT+"</SND_COUNT>" +
					"<TRACE_NO>"+TRACE_NO+"</TRACE_NO>" +
					"<BAK_FLD1>"+BAK_FLD+"</BAK_FLD1>" +
					"<BAK_FLD2>"+BAK_FLD+"</BAK_FLD2>" +
					"</head>" +
					"<data>" +
					"<RPT_FLAG>"+RPT_FLAG+"</RPT_FLAG>" +
					"<MODE_NO>"+MODE_NO+"</MODE_NO>" +
					"<MSG_CONT>"+MSG_CONT+"</MSG_CONT>" +
					"<TAG_TEL>"+TAG_TEL+"</TAG_TEL>" +
					"<SEND_TIME>"+SEND_TIME+"</SEND_TIME>" +
					"<VALID_TIME>"+VALID_TIME+"</VALID_TIME>" +
					"<TIME_OUT>"+TIME_OUT+"</TIME_OUT>" +
					"<BAK_FLD1>"+BAK_FLD+"</BAK_FLD1>" +
					"<BAK_FLD2>"+BAK_FLD+"</BAK_FLD2>" +
					"</data>" +
					"</txnreq>";
			outMsg.format=MQC.MQFMT_STRING;
//			outMsg.writeString(massage);
//			outMsg.writeUTF(massage);
			outMsg.write(massage.getBytes());
			queue.put(outMsg,pmo);
			qMgr.commit();
			queue.close();
			qMgr.disconnect();
			flag=true;
		}catch(Exception er){
			logger.error("MQ.() method Exception..");
			logger.error(er);
			er.printStackTrace();
		}
		return flag;
	}
	//new load xml config function
	private static List loadConfig(String type){
		List list=new ArrayList();
		SAXBuilder builder = new SAXBuilder(false);
		try{
			String str=BocBC4xml.class.getProtectionDomain().getCodeSource().getLocation().toString();
			String path=str.substring(0,str.lastIndexOf("/WEB-INF/classes/")+1);
			String xmlpath=path+"WEB-INF/config/Config.xml";
			Document doc = builder.build(xmlpath);
			Element root = doc.getRootElement();
			List children = root.getChildren();
			for (int i = 0; i < children.size(); i++) {
				ConfigBean CB=new ConfigBean();
				if(type.toUpperCase().equals("FTP")){
					System.out.println("load ftp config information..");
					CB.setFtpLocalPath(((Element)children.get(i)).getAttributeValue("ftpLocalPath"));
					CB.setFtpRemotePath(((Element)children.get(i)).getAttributeValue("ftpRemotePath"));
					CB.setFtpServerIp(((Element)children.get(i)).getAttributeValue("ftpServerIp"));
					CB.setFtpServerPort(((Element)children.get(i)).getAttributeValue("ftpServerPort"));
					CB.setFtpServerPswd(((Element)children.get(i)).getAttributeValue("ftpServerPswd"));
					CB.setFtpServerUser(((Element)children.get(i)).getAttributeValue("ftpServerUser"));
				}
				if(type.toUpperCase().equals("MQ")){
					System.out.println("load mq config information..");
					CB.setMqCCSID(((Element)children.get(i)).getAttributeValue("mqCCSID"));
					CB.setMqChannel(((Element)children.get(i)).getAttributeValue("mqChannel"));
					CB.setMqPort(((Element)children.get(i)).getAttributeValue("mqPort"));
					CB.setMqQueueManager(((Element)children.get(i)).getAttributeValue("mqQueueManager"));
					CB.setMqQueueName(((Element)children.get(i)).getAttributeValue("mqQueueName"));
					CB.setMqServer(((Element)children.get(i)).getAttributeValue("mqServer"));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -