package tw.com.cathaybk.vmdirecttrace;
import java.io.File;
import java.nio.file.Paths;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import tw.com.cathaybk.util.MailAgent;
import TR2DataSendClient.Sender;
import TR2DataSendClient.Data.Form;
public class MessageDefaultConsumer implements MessageListener {
protected String forwardPort = "";
protected String forwardIP = "";
Logger logger = LoggerFactory.getLogger(getClass());
@Override
public void onMessage(Message message) {
if (message instanceof TextMessage) {
try {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS");
Date today = Calendar.getInstance().getTime();
String procDate = df.format(today);
String msg = ((TextMessage) message).getText() + "$_"; // 若不加,則後面空字串都不會被算入 Array 中。
String[] AfterSplit = msg.split("#");
if (AfterSplit.length == 50) {
logger.info("recv : " + msg + " at " + procDate);
Form obj = new Form();
obj.setLogYy( AfterSplit[0].contains("$")?AfterSplit[0].substring(AfterSplit[0].indexOf("$")+1):AfterSplit[0] );
obj.setLogMm( AfterSplit[1] );
obj.setLogDd( AfterSplit[2] );
obj.setLogSeq( AfterSplit[3] );
obj.setCrdFiid( AfterSplit[4] );
obj.setTranDat( AfterSplit[5] );
obj.setCrdNum( AfterSplit[6] );
obj.setRetlId( AfterSplit[7] );
obj.setTermId( AfterSplit[8] );
obj.setBatchNum( AfterSplit[9] );
obj.setRecTyp( AfterSplit[10] );
obj.setShiftNum( AfterSplit[11] );
obj.setSeqNum( AfterSplit[12] );
obj.setTranTim( AfterSplit[13] );
obj.setApprvCde8( AfterSplit[14] );
obj.setDftCapFlg( AfterSplit[15] );
obj.setTc( AfterSplit[16] );
obj.setCrdTyp( AfterSplit[17] );
//obj.setAmt1( AfterSplit[18].substring(0, 14) + "." + AfterSplit[18].substring(14)); // NUMERIC(16,2),前14位為整數,後兩位為小數位。
//obj.setAmt2( AfterSplit[19].substring(0, 14) + "." + AfterSplit[19].substring(14) ); // NUMERIC(16,2),前14位為整數,後兩位為小數位。
obj.setAmt1( AfterSplit[18]);
obj.setAmt2( AfterSplit[19]);
//obj.setAmt1("1000");
//obj.setAmt2("0");
obj.setAuthTyp( AfterSplit[20] );
obj.setOriginator( AfterSplit[21] );
obj.setResponder( AfterSplit[22] );
obj.setEntryTim( AfterSplit[23] );
obj.setExitTim( AfterSplit[24] );
obj.setReEntryTim( AfterSplit[25] );
obj.setTermCntryCde( AfterSplit[26] );
obj.setGrp( AfterSplit[27] );
obj.setUserId( AfterSplit[28] );
obj.setRetlSicCde( AfterSplit[29] );
obj.setOrig( AfterSplit[30] );
obj.setRespCde( AfterSplit[31] );
obj.setTrack2Fmt1( AfterSplit[32] );
obj.setPtSrvEntryMde( AfterSplit[33] );
obj.setOptnRetlId( AfterSplit[34] );
obj.setOptnEdcTc( AfterSplit[35] );
obj.setCardLn( AfterSplit[36] );
obj.setTermLn( AfterSplit[37] );
obj.setPtSrvCondMde( AfterSplit[38] );
obj.setTrack2ExpDate( AfterSplit[39] );
obj.setGmtDat( AfterSplit[40] );
obj.setGmtTim( AfterSplit[41] );
obj.setInDate( AfterSplit[42] );
obj.setUcafAuthnCollInd( AfterSplit[43] );
obj.setTxIndr( AfterSplit[44] );
obj.setAcctNumInd( AfterSplit[45] );
obj.setVirtualCardNum( AfterSplit[46] );
obj.setVcnExp( AfterSplit[47] );
obj.setOnBehalfService( AfterSplit[48] );
obj.setOnBehalfResult( AfterSplit[49].replace("$_", "") );
//Sender sd = new Sender( "127.0.0.1", "5210", getClass().getClassLoader().getResource("clientPass/tclient.keystore").getFile(), "tclient" );
// 在Eclipse 環境中使用
//logger.info("ready to send: " + forwardIP + ":" + forwardPort + " with keystore=" + getClass().getClassLoader().getResource("clientPass/tclient.keystore").getFile() );
//Sender sd = new Sender( forwardIP, forwardPort, getClass().getClassLoader().getResource("clientPass/tclient.keystore").getFile(), "tclient" );
//Sender sd = new Sender( forwardIP, forwardPort, "C:/Application/MIDNTX2501/Bin/vmdt/clientPass/tclient.keystore", "tclient" );
//logger.info("ready to send: " + forwardIP + ":" + forwardPort + " with keystore=" + new File("clientPass/tclient.keystore").getAbsolutePath() );
// 在包成 jar 檔的 環境中使用
//logger.info("ready to send: " + forwardIP + ":" + forwardPort + " with keystore=" + new File("clientPass/tclient.keystore").getAbsolutePath() );
//Sender sd = new Sender( forwardIP, forwardPort, new File("clientPass/tclient.keystore").getAbsolutePath(), "tclient" );
// 改設定在 server.properties 中
Sender sd = new Sender( forwardIP, forwardPort, keystorePath, "tclient" );
// "C:/D/Java/workspace/VMDirectTrace/bin/clientPass/tclient.keystore"
String result = sd.send2Server(obj);
if (!"".equals(result))
{
mailAgent.sendMsg("VMDT 錯誤訊息", "傳送錯誤:" + result);
}
logger.info("send: " + obj.toString() + ", ret = " + result + " at " + df.format(Calendar.getInstance().getTime()));
}
else {
logger.info("recv : " + msg + " at " + procDate + " but data error.");
mailAgent.sendMsg("VMDT 錯誤訊息", "傳送錯誤:資料格式有誤:" + msg);
}
/*
String msg = ((TextMessage) message).getText();
System.out.println("Message has been consumed : " + msg + " at " + procDate);
Thread.sleep(5000);
procDate = df.format(Calendar.getInstance().getTime());
System.out.println("Message has been processed : " + msg + " at " + procDate);
*/
} catch (JMSException ex) {
mailAgent.sendMsg("VMDT 錯誤訊息", "傳送錯誤:JMSException:" + ex.getMessage());
//throw new RuntimeException(ex);
} catch (Exception e) {
mailAgent.sendMsg("VMDT 錯誤訊息", "傳送錯誤:Exception:" + e.getMessage());
logger.info("Exception : " + e.getMessage());
}
} else {
throw new IllegalArgumentException(
"Message must be of type TextMessage");
}
}
public String getForwardIP()
{
return forwardIP;
}
public void setForwardIP(String forwardIP)
{
this.forwardIP = forwardIP;
}
public String getForwardPort()
{
return forwardPort;
}
public void setForwardPort(String forwardPort)
{
this.forwardPort = forwardPort;
}
private String keystorePath;
public void setKeystorePath(String keystorePath)
{
this.keystorePath = keystorePath;
}
private MailAgent mailAgent;
public void setMailAgent(MailAgent mailAgent) {
this.mailAgent =
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
VMDirectTrace.zip (82个子文件)
VMDirectTrace
bin
jms
apache-activemq-jms.xml 2KB
embedded-activemq-jms-spring.xml 2KB
apache-activemq-properties.xml 937B
clientPass
tclient.keystore 970B
log4j.xml 3KB
tw
com
cathaybk
test
EchoClients.class 1KB
ClientHandler.class 3KB
vmdirecttrace
VMDTServerSP$1.class 3KB
MessageDefaultConsumer.class 6KB
VMDTServerSP.class 5KB
EmbeddedJmsSample.class 1KB
VMDTIPFilter.class 2KB
MessageProducer.class 771B
VMDTServerHandler.class 2KB
util
SystemParameter.class 1KB
ContextFactory.class 869B
MailAgent.class 2KB
BeanLocator.class 2KB
OPSender.class 4KB
MailSender.class 2KB
spring
server.properties 621B
server-beans.xml 2KB
apache-activemq-context.xml 697B
resources
jms
apache-activemq-jms.xml 2KB
embedded-activemq-jms-spring.xml 2KB
apache-activemq-properties.xml 937B
clientPass
tclient.keystore 970B
log4j.xml 3KB
spring
server.properties 621B
server-beans.xml 2KB
apache-activemq-context.xml 697B
.settings
org.eclipse.jdt.core.prefs 598B
activemq-data
localhost
tmp_storage
src
tw
com
cathaybk
test
EchoClients.java 6KB
vmdirecttrace
VMDTServerHandler.java 1017B
VMDTServerSP.java 5KB
MessageProducer.java 360B
VMDTIPFilter.java 2KB
MessageDefaultConsumer.java 8KB
EmbeddedJmsSample.java 2KB
util
BeanLocator.java 2KB
ContextFactory.java 678B
OPSender.java 2KB
MailAgent.java 1KB
MailSender.java 1KB
SystemParameter.java 745B
.project 389B
.classpath 2KB
run.bat 599B
lib
spring-core-4.0.2.RELEASE-sources.jar 595KB
spring-jms-4.0.2.RELEASE-sources.jar 168KB
spring-context-support-4.0.2.RELEASE.jar 132KB
spring.jar 2.58MB
spring-aop-4.0.2.RELEASE-sources.jar 321KB
spring-expression-4.0.2.RELEASE-sources.jar 159KB
slf4j-api-1.7.7.jar 29KB
mail.jar 339KB
jms-api-1.1-rev-1.jar 38KB
spring-aop-4.0.2.RELEASE.jar 344KB
spring-jms-4.0.2.RELEASE.jar 206KB
javax.management.j2ee-api-1.1.1.jar 32KB
netty-all-5.0.0.Alpha2.jar 2.56MB
log4j-extras-1.2.17.jar 438KB
slf4j-log4j12-1.7.6.jar 9KB
spring-beans-4.0.2.RELEASE-sources.jar 552KB
spring-core-4.0.2.RELEASE.jar 938KB
activemq-core-5.7.0.jar 3.78MB
activemq-all-5.2.0.jar 2.51MB
spring-beans-4.0.2.RELEASE.jar 653KB
spring-context-support-4.0.2.RELEASE-sources.jar 135KB
netty-all-4.1.5.Final.jar 3.34MB
netty-all-5.0.0.Alpha2-sources.jar 2.01MB
spring-context-4.0.2.RELEASE-sources.jar 879KB
TraceDataSendClient.jar 57KB
spring-tx-4.0.2.RELEASE-sources.jar 271KB
netty-all-4.1.5.Final-sources.jar 2.68MB
spring-tx-4.0.2.RELEASE.jar 242KB
commons-logging-1.2.jar 60KB
xbean-spring-3.7.jar 128KB
spring-context-4.0.2.RELEASE.jar 951KB
log4j-1.2.17.jar 478KB
log4j-core-2.0.jar 763KB
spring-expression-4.0.2.RELEASE.jar 200KB
共 82 条
- 1
derjune
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0