📄 mmsdobussi.java
字号:
package com.hxyh.sanny.mms.telecom.main;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import org.apache.axiom.attachments.Attachments;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.databinding.types.URI;
import com.hxyh.sanny.mms.telecom.config.Config_XML;
import com.hxyh.sanny.mms.telecom.config.GateParam;
import com.hxyh.sanny.mms.telecom.service.PolicyException;
import com.hxyh.sanny.mms.telecom.service.SendMessageServiceStub;
import com.hxyh.sanny.mms.telecom.service.ServiceException;
import com.hxyh.sanny.mms.telecom.service.SendMessageServiceStub.MessagePriority;
import com.hxyh.sanny.mms.telecom.service.SendMessageServiceStub.SendMessage;
import com.hxyh.sanny.mms.telecom.service.SendMessageServiceStub.SendMessageE;
import com.hxyh.sanny.mms.telecom.service.SendMessageServiceStub.SendMessageResponseE;
import com.hxyh.sanny.mms.telecom.service.SendMessageServiceStub.SimpleReference;
import com.hxyh.sanny.mms.telecom.soap.HeaderSetter;
import com.hxyh.sanny.mms.telecom.tool.DBConnectionPool;
public class MMSDobussi {
GateParam m_oParam = null;
Connection m_oCon = null;
Statement m_oRsStat = null;
Statement m_oCmdStat = null;
String sql = "";
ResultSet rs = null;
String m_sDestTerminalID = null;// 用户号码
String m_sSrcTerminalID = null; // 源号码
String m_sMMSContent = null; // 彩信内容
String m_sServiceCode = null;// 业务代码
String m_sLinkID = null;// LINDID
String m_sTransactionId = null;// transactionId
public boolean returnFlag = true;
private Config_XML m_oXmlParser = new Config_XML();
public void initParam() {
// 获取配置文件
m_oParam = new GateParam();
// 数据库连接
DBConnectionPool.initDriver(m_oParam.m_sDBDrv);
DBConnectionPool.setUrl(m_oParam.m_sDBURL);
DBConnectionPool.setUser(m_oParam.m_sDBUser);
DBConnectionPool.setPassword(m_oParam.m_sDBPass);
m_oCon = DBConnectionPool.getConnection();
try {
m_oRsStat = m_oCon.createStatement();
m_oCmdStat = m_oCon.createStatement();
System.out.println("INFO:连接数据库成功!:" + m_oParam.m_sDBURL + "["
+ m_oParam.m_sDBUser + "]" + m_oParam.m_sDBPass);
System.out.println("INFO:线程启动!");
for (;;) {
sql = "select * from HXYH_MMS_MT where YH_STATUS = 'wait'";
rs = m_oRsStat.executeQuery(sql);
while (rs.next()) {
// 有彩信内容下发
m_sDestTerminalID = rs.getString("DestTerminalID");
m_sSrcTerminalID = rs.getString("SrcTerminalID");
m_sMMSContent = rs.getString("MMSContent");
m_sServiceCode = rs.getString("ServiceCode");
m_sLinkID = rs.getString("LinkID");
m_sTransactionId = rs.getString("TransactionId");
// 发送
returnFlag = SendMMSContent(m_sDestTerminalID,
m_sSrcTerminalID, m_sMMSContent, m_sServiceCode,
m_sLinkID, m_sTransactionId, m_oParam);
}
Thread.sleep(3000);
}
} catch (Exception e) {
System.exit(1);
e.printStackTrace();
}
}
// 发送彩信
public boolean SendMMSContent(String m_sDestTerminalID,
String m_sSrcTerminalID, String m_sMMSContent,
String m_sServiceCode, String m_sLinkID, String m_sTransactionId,
GateParam m_oParam) {
boolean returntype = true;
try {
m_oXmlParser.set(m_sMMSContent);
/*
* MMS接口规范中定义的sendMessage接口参数:
*
* DestinationAddress xsd:anyURI [0..unbounded] SenderAddress
* xsd:anyURI Subject xsd:String Priority MessagePriority Charging
* Common:ChargingInformation ReceiptRequest Common:SimpleReference
*/
/** ***begin - sendMessage接口参数设置**** */
SendMessage param = new SendMessage();
// DestinationAddress, 目的地址(群发的情况下, DestinationAddress为URI数组)
// URI[] addr = new URI[1];
// addr[0] = new URI(m_sDestTerminalID);
// param.setAddresses(addr);
String[] s_ToMdn = m_sDestTerminalID.split(";");
int n_ToMdnSize = s_ToMdn.length;
URI[] addr = new URI[n_ToMdnSize];
for(int nn = 0;nn<n_ToMdnSize;nn++){
addr[nn] = new URI(s_ToMdn[nn]);
}
param.setAddresses(addr);
// SenderAddress
param.setSenderAddress(m_sSrcTerminalID);
// Subject
param.setSubject("MMSTest");
// Priority
param.setPriority(MessagePriority.Default);
// Charging(可选)
param.setCharging(null);
// ReceiptRequest, 为null表示SP不需要状态报告; 非null表示SP需要状态报告
SimpleReference simpleRef = new SimpleReference();
simpleRef.setEndpoint(new URI(m_oParam.m_sSPURL));// 设置SPURL地址
simpleRef.setCorrelator("123456");
simpleRef.setInterfaceName("test");
// param.setReceiptRequest(simpleRef); //ReceiptRequest不为Null
param.setReceiptRequest(null); // ReceiptRequest为Null
/**
// 设置彩信附件, 从磁盘读取图片文件
File f = new File("D:\\1.jpg");
Attachments attachments = new Attachments();
FileDataSource ds = new FileDataSource(f);
DataHandler dh = new DataHandler(ds);
attachments.addDataHandler("12345678", dh);
*/
/** ***end - sendMessage接口参数设置**** */
// ISAG的sendMessage开放接口URI
String sendMessageURI = m_oParam.m_sMMSUrl;
// 创建客户端Stub类的对象
SendMessageServiceStub sendMessageStub = new SendMessageServiceStub(
sendMessageURI);
ServiceClient client = sendMessageStub._getServiceClient();
// 【设置SOAPHeader】
HeaderSetter ob_HeaderSetter = new HeaderSetter();
ob_HeaderSetter.setLinkID(m_sLinkID);
ob_HeaderSetter.setProductId(m_sServiceCode);
ob_HeaderSetter.setSpId(m_oParam.m_sGTUser);
ob_HeaderSetter.setSpPassword(m_oParam.m_sGTPass);
ob_HeaderSetter.setTransactionId(m_sTransactionId);
// HeaderSetter.setAOMTSoapHeader(client);
ob_HeaderSetter.setAOMTSoapHeader(client);
// 【设置请求消息】
SendMessageE reqMessage = new SendMessageE();
reqMessage.setSendMessage(param);
// SendMessageResponseE rspMessage = sendMessageStub.sendMessage(
// reqMessage, attachments);
SendMessageResponseE rspMessage = sendMessageStub.sendMessage(
reqMessage, MakeMMS());
System.out.println(rspMessage.getSendMessageResponse().getResult());
} catch (PolicyException e) {
returntype = false;
// ISAG抛出PolicyException
String msgID = e.getFaultMessage().getPolicyException()
.getMessageId();
String text = e.getFaultMessage().getPolicyException().getText();
String[] variables = e.getFaultMessage().getPolicyException()
.getVariables();
if (variables != null && variables.length > 0)
text = text + " : " + variables[0];
System.out.println("PolicyException:\n" + msgID + " : " + text);
e.printStackTrace();
} catch (ServiceException e) {
returntype = false;
// ISAG抛出ServiceException
String msgID = e.getFaultMessage().getServiceException()
.getMessageId();
String text = e.getFaultMessage().getServiceException().getText();
String[] variables = e.getFaultMessage().getServiceException()
.getVariables();
if (variables != null && variables.length > 0)
text = text + " : " + variables[0];
System.out.println("ServiceException:\n" + msgID + " : " + text);
e.printStackTrace();
} catch (Exception e) {
returntype = false;
e.printStackTrace();
}
return returntype;
}
//设置彩信附件
public Attachments MakeMMS(){
//String temp = new String("<?xml version=\"1.0\" encoding=\"gbk\"?><hxyhmms><subject><value>[华信怡和 动画彩图]</value></subject><item1><type>TXT</type><option></option><value>缤纷的霓虹照耀着寒夜的街景,一片火树银花夺目而辉煌,映得欧式宽阔的庭院光亮如白昼。美酒佳肴、俊男美女、舞影婆娑、珠光美饰……夜风吹过,湖水在火树银花的霓虹下波光鳞鳞。如闪电划过长空……一辆宝石蓝加迪;威龙跑车刹时倒映在湖水中,也闯进了众人的视线。车门打开,由车上下来的男人气宇轩昂,英气逼人。他有着一张令人屏吸的俊逸面容,立体而骨感的五。浓黑斜飞的剑眉,张显着他的凛然傲气。一双魅惑人心的大眼睛,冰冷、深邃中透露着精锐与干练。高而直挺的俊鼻,更添几分王者风范。然而,最具魅力的却是他性感的薄唇,虽薄却凌角分明,轻轻抿起,总是露出一抹狂妄而自信的微笑,这几乎成了他掳获人心无往不利的武器。他的出现就像黑中唯一的发光体般璀璨夺目,紧紧牵引着所有的注视,他每一个举手投足、一颦一笑都是如此地牵动人心。任昊,无疑是女人眼里的“绩优股”,他在媒体上的爆光率远远超过当下红得发紫的明星,哪怕是娱乐版,头条的位置总是被他一人独霸,他****倜傥、单身且多金,个性却是极其冷酷无情的,浑身散发着冰冷气息,在商场上呼风唤雨的任昊,亿万身价的他对于女人来说,绝对是飞蛾扑火、至命的诱惑……任昊一般很少出现在这里种纯娱乐性的私人派队上,哪怕是猎艳,他也不会选择来这种地方,他通常所用的猎艳方式无非就那么几种,例如,砸钱给娱乐公司,以力捧新人的为由包养刚出道的小明星……再者,就是在那些个自投罗网的大家闺秀中,挑上几个看得上眼顺心顺意的陪养一下感情。当然,偶遇的一夜欢爱他也是不排斥的。顾桃怡一出现在宴会上,立时引起不少惊艳的目光,奇怪的是,她的美貌虽然是众所共认的,却没有人请她跳舞。这样的结果让顾桃怡十分的气愤,好好的一个圣旦夜就这样被浪费了,过了这个圣旦她就十八岁整了,再也不是小朋友了!今天开始她就成年了!!!顾桃怡万岁!!!!!!!!!!!!!!!!一想到这里,小桃怡就异常的兴奋,因为变成大人对于她来说很重要,这样她就可以和其他的大人一样,随心所欲,做自己喜欢的事啦。哇噻!真是太棒了!然而,按照现在的情形来看,她好像兴奋的太早了耶!小桃怡苦着一张小脸,很不高兴的样子。明明已经长大了,为什么那些帅哥还不来邀请她跳舞呢?</value></item1><item2><type>IMG</type><option></option><value>D:\\1.gif</value></item2><item3><type>TXT</type><option></option><value>蝴蝶精灵</value></item3></hxyhmms>");
//m_oXmlParser.set(temp);
Attachments attachments = new Attachments();
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")) {
String substr = m_oXmlParser.readAttribute("item" + i, "value");
DataHandler subdh = new DataHandler(substr,"text/plain");
attachments.addDataHandler(i+".txt",subdh);
}
else if (m_oXmlParser.readAttribute("item" + i, "type")
.toUpperCase().equals("IMG")) {
String sImgF = m_oXmlParser.readAttribute("item" + i,"value");
File f = new File(sImgF);
FileDataSource ds = new FileDataSource(f);
DataHandler dh = new DataHandler(ds);
if (sImgF.toLowerCase().indexOf("gif") > 0) {
attachments.addDataHandler(i + ".gif", dh);
}
else if ((sImgF.toLowerCase().indexOf("jpg") > 0)
|| (sImgF.toLowerCase().indexOf("jpeg") > 0)) {
attachments.addDataHandler(i + ".jpg", dh);
}
}
else if (m_oXmlParser.readAttribute("item" + i, "type")
.toUpperCase().equals("RING")) {
String sRingF = m_oXmlParser.readAttribute("item" + i,
"value");
File f = new File(sRingF);
FileDataSource ds = new FileDataSource(f);
DataHandler dh = new DataHandler(ds);
if (sRingF.toLowerCase().indexOf("mid") > 0) {
attachments.addDataHandler(i + ".mid", dh);
}
else if ((sRingF.toLowerCase().indexOf("amr") > 0)){
attachments.addDataHandler(i + ".amr", dh);
}
}
else if (m_oXmlParser.readAttribute("item" + i, "type")
.toUpperCase().equals("SMIL")) {
String smil = m_oXmlParser.readAttribute("item" + i,
"value");
File f = new File(smil);
FileDataSource ds = new FileDataSource(f);
DataHandler dh = new DataHandler(ds);
attachments.addDataHandler(i + ".smil", dh);
}
}
}
return attachments;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -