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

📄 inithandler.java

📁 中国电信ISMP管理平台SMS订购关系同步接口
💻 JAVA
字号:
package com.wireless.sms.ismp;

import org.apache.axis.AxisFault;
import org.apache.axis.MessageContext;
import org.apache.axis.handlers.BasicHandler;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.DOM4JConfiguration;

import com.wireless.sms.ismp.global.DBPool;
import com.wireless.sms.ismp.global.LoggerConstant;
import com.wireless.sms.ismp.global.SendThread;
import com.wireless.sms.pub.db.ConnectionPool;
import com.wireless.sms.pub.mq.MOQueue;

public class InitHandler extends BasicHandler {
	static final long serialVersionUID = 1L;
	private static boolean hasInitFlag = false;
	public static Configuration configuration = null;

	public static MOQueue MOQUEUE = new MOQueue();
	public static String[] ROUTERHOST;
	public static String[] ROUTERPORTS;
	public static String PROCESSHOST;
	public static String[] MONITORHOST;
	public static String[] MONITORPORT;
	public static String switch_name;
	public static String DBFILEPATH;
	public static String GATEWAYID;
	
	public void invoke(MessageContext msgContext) throws AxisFault {
		initSystemOnce(msgContext);
	}

	private void initSystemOnce(MessageContext msgContext) {
		if(hasInitFlag)
			return;
		System.out.println("initSystem for the first time......");
		String config_fileName = (String)this.getOption("config");
		String log4j_fileName = (String)this.getOption("log4j");
		String path = (String)this.getOption("path");
		System.out.println("config_fileName = " + config_fileName + "\n" +
				"log4j_fileName = " + log4j_fileName + "\n" +
						"path = " + path);
		
		if(config_fileName == null || log4j_fileName == null)
			throw new Error("配置文件没有找到参数config或者log4j",
					new Throwable("配置参数config或者log4j在server-config.wsdd文件对应的服务中没有设置,检查此项!"));
		
		java.io.File config_file;
		java.io.File log4j_file;
		//config_file
		if(config_fileName.startsWith(path))
			config_file = new java.io.File(config_fileName);
		else
			config_file = new java.io.File(path + config_fileName);
		//log4j_file
		if(log4j_fileName.startsWith(path))
			log4j_file = new java.io.File(log4j_fileName);
		else
			log4j_file = new java.io.File(path + log4j_fileName);
		//confirm
		if(!config_file.exists() || !log4j_file.exists()) {
			hasInitFlag = false;
			throw new Error("配置文件config=" + config_file +
					"或者log4j=" + log4j_file +
					"没有找到",
					new Throwable("配置文件config或者log4j在服务中配置的路径下没有找到该文件,检查此项!"));
		}
		//初始化log4j配置
		try {
			LoggerConstant.init(log4j_file.getPath().replaceAll("\\\\", "/"));
//			LoggerConstant.stat_log.info("initSystem for the first time......");
		} catch (Exception e) {
			e.printStackTrace();
		}
		//初始化全局配置文件config.xml
		try {
			configuration = new DOM4JConfiguration(config_file);
			
			ROUTERHOST = configuration.getStringArray("routerservers.routerserver");
			ROUTERPORTS = configuration.getStringArray("routerservers.routerserver[@port]");
			MONITORHOST = configuration.getStringArray("monitorserver.monitor");
		    MONITORPORT = configuration.getStringArray("monitorserver.monitor[@port]");
		    PROCESSHOST = configuration.getString("processhost");
		    switch_name = configuration.getString("switch_name");
		    DBFILEPATH = configuration.getString("dbfilepath");
		    GATEWAYID = configuration.getString("gatewayid");

		    //初始化数据库
		    if(DBFILEPATH.replaceAll("\\\\", "/").startsWith(path.replaceAll("\\\\", "/")))
		    	DBPool.POOL = ConnectionPool.getInstance(DBFILEPATH.replaceAll("\\\\", "/"));
		    else
		    	DBPool.POOL = ConnectionPool.getInstance((path + DBFILEPATH).replaceAll("\\\\", "/"));
		    
		    //启动mo发送
		    SendThread.getInstance().start();
		    //发送启动通知
		    SendThread.getInstance().sendmonitor("I000010");
		} catch (Exception e) {
			e.printStackTrace();
		}
		hasInitFlag = true;
	}
}

⌨️ 快捷键说明

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