📄 mmssmt.java
字号:
package com.hxyh.sanny.mms.cmcc.bussi;
import com.hxyh.sanny.mms.cmcc.mm7.vasp.message.*;
import com.hxyh.sanny.mms.cmcc.mm7.vasp.service.MM7Sender;
import com.hxyh.sanny.mms.cmcc.mm7.vasp.common.*;
import java.io.*;
import java.util.*;
import java.text.*;
import com.hxyh.sanny.mms.cmcc.mm7.vasp.conf.*;
import com.hxyh.sanny.mms.cmcc.base.*;
import java.sql.*;
public class MMSSMT implements Runnable {
static int m_Tid = 10000;
Connection m_oCon = null;
Statement m_oRsStat = null;
Statement m_oCmdStat = null;
private Config_XML m_oXmlParser = new Config_XML();
Map mtmap = new HashMap();
MM7Config mm7Config[] = null;
public MMSSMT() {
try {
Properties p = new Properties();
p.load(new FileInputStream(System.getProperty("user.dir")
+ "/mmsgate.ini"));
String mt[] = p.getProperty("MTKEY").split(",");
for (int i = 0; i < mt.length; i++) {
MM7Config oTmp = new MM7Config(p.getProperty("MT" + mt[i]));
oTmp.setConnConfigName(p.getProperty("MTCONFIG"));
MM7Sender oSend = new MM7Sender(oTmp);
mtmap.put(mt[i], oSend);
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("��ʼ��MT�̳߳ɹ�----");
}
private MMContent MakeMMS() {
MMContent content = null;
try {
content = new MMContent();
content.setContentType(MMConstants.ContentType.MULTIPART_RELATED);
for (int i = 0; i < 30; i++) {
if (m_oXmlParser.readAttribute("hxyhmms", "item" + i) == null) {
break;
} else {
if (m_oXmlParser.readAttribute("item" + i, "type")
.toUpperCase().equals("TXT")) {
MMContent sub = MMContent.createFromBytes(m_oXmlParser
.readAttribute("item" + i, "value").getBytes(
"UTF-8"));
sub.setContentID(i + ".txt");
sub.setContentType(MMConstants.ContentType.TEXT);
content.addSubContent(sub);
} else if (m_oXmlParser.readAttribute("item" + i, "type")
.toUpperCase().equals("IMG")) {
String sImgF = m_oXmlParser.readAttribute("item" + i,
"value");
MMContent sub = MMContent.createFromFile(sImgF);
if (sImgF.toLowerCase().indexOf("gif") > 0) {
sub.setContentID(i + ".gif");
sub.setContentType(MMConstants.ContentType.GIF);
} else if ((sImgF.toLowerCase().indexOf("jpg") > 0)
|| (sImgF.toLowerCase().indexOf("jpeg") > 0)) {
sub.setContentID(i + ".jpg");
sub.setContentType(MMConstants.ContentType.JPEG);
}
content.addSubContent(sub);
} else if (m_oXmlParser.readAttribute("item" + i, "type")
.toUpperCase().equals("RING")) {
String sRingF = m_oXmlParser.readAttribute("item" + i,
"value");
MMContent sub = MMContent.createFromFile(sRingF);
if (sRingF.toLowerCase().indexOf("mid") > 0) {
sub.setContentID(i + ".mid");
sub.setContentType(MMConstants.ContentType.MIDI);
} else if ((sRingF.toLowerCase().indexOf("amr") > 0))
{
sub.setContentID(i + ".amr");
sub.setContentType(MMConstants.ContentType.AMR);
}
content.addSubContent(sub);
} else if (m_oXmlParser.readAttribute("item" + i, "type")
.toUpperCase().equals("SMIL")) {
String smil = m_oXmlParser.readAttribute("item" + i,
"value");
MMContent sub = MMContent.createFromFile(smil);
sub.setContentID(i + ".smil");
sub.setContentType(MMConstants.ContentType.SMIL);
content.addSubContent(sub);
}
}
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
return content;
}
public void run() {
try {
m_oCon = DBConnectionPool.getConnection();
m_oRsStat = m_oCon.createStatement();
m_oCmdStat = m_oCon.createStatement();
MM7SubmitReq submit = new MM7SubmitReq();
while (true) {
ResultSet rs = m_oRsStat.executeQuery("EXEC SCMP_GETMMS2SEND");
while (rs.next()) {
try {
submit.setTransactionID(rs.getString("YH_ID"));
submit.setVASPID(rs.getString("VASPID"));
submit.setVASID(rs.getString("VASID"));
submit.setServiceCode(rs.getString("SERVICECODE"));
submit.setSenderAddress(rs.getString("SENDER"));
List to = new java.util.ArrayList();
String[] sTo = rs.getString("SENDTO").split(";");
for (int jj = 0; jj < sTo.length; jj++) {
to.add(sTo[jj]);
}
submit.setTo(to);
submit.setLinkedID(rs.getString("LINKID"));
m_oXmlParser.set(rs.getString("MMSMSG"));
submit.setSubject(m_oXmlParser.readAttribute("subject",
"value"));
submit.setMessageClass("Information");
submit.setDeliveryReport(true);
submit.setContent(MakeMMS());
MM7RSRes rsRes = null;
rsRes = (MM7RSRes) ((MM7Sender) mtmap.get(rs
.getString("VASPID"))).send(submit);// mm7Sender.send(submit);
if (rsRes instanceof MM7SubmitRes) {
MM7SubmitRes submitRes = (MM7SubmitRes) rsRes;
System.out.println(" >>>mt:ok>>>[to:"
+ rs.getString("SENDTO") + "][srv:"
+ rs.getString("SERVICECODE") + "][resp:"
+ submitRes.getStatusCode() + ":"
+ submitRes.getStatusText() + "]");
m_oCmdStat
.executeUpdate("UPDATE TCMP_MT SET YH_STATUS='RUN'"
+ ",TRANSACTIONID='"
+ submitRes.getMessageID()
+ "',SENDSTATUS='"
+ submitRes.getStatusText()
+ "',SENDCODE='"
+ submitRes.getStatusCode()
+ "' WHERE yh_id="
+ rs.getString("YH_ID"));
} else {
System.out.println(" >>>mt:fail>>>[to:"
+ rs.getString("SENDTO")
+ "][srv:"
+ rs.getString("SERVICECODE")
+ "][resp:"
+ rsRes.getStatusCode()
+ "][info:"
+ rsRes.getStatusText()
+ "]"
+ (new SimpleDateFormat("MM/dd HH:mm:ss"))
.format(new java.util.Date(System
.currentTimeMillis())));
m_oCmdStat
.executeUpdate("UPDATE TCMP_MT SET YH_STATUS='FAIL'"
+ ",SENDSTATUS='"
+ rsRes.getStatusText()
+ "',SENDCODE='"
+ rsRes.getStatusCode()
+ "' WHERE yh_id="
+ rs.getString("YH_ID"));
}
} catch (Exception e) {
e.printStackTrace();
}
Thread.sleep(20);
}
Thread.sleep(500);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -