📄 cmccmm7recvservlet.java
字号:
}
} else {
// 多媒体是单个多媒体元素
//System.out.println("Has Single MMS Content");
if (c.getContentType().getPrimaryType().compareTo("") != 0) {
String mimeType = c.getContentType().getPrimaryType() + "/" +
c.getContentType().getSubType();
MimeContent contentElement = new MimeContent();
// 按照文本格式保存
if (QueryMimeContentSaveStrategy.getSaveStrategy(mimeType, sess) == 1) {
contentElement.setCharacterContent(c.getContentAsString());
contentElement.setBinaryContent(null);
} else { // 按照二进制格式保存
contentElement.setBinaryContent(c.getContent());
contentElement.setCharacterContent(null);
}
contentElement.setCreateTime(new Date());
contentElement.setMimeContentName(c.getContentID());
contentElement.setMimeType(mimeType);
// 保存该多媒体元素
Integer contentId = (Integer)sess.save(contentElement);
//System.out.println("Deliver MMS Content Element ID: " + contentId);
log.debug("Deliver MMS Content Element ID: " + contentId);
// 将该多媒体元素加入到彩信内容体中
mmsContent.getMmsContentElments().add(contentElement);
}
}
//System.out.println(mmsContent.toString());
// 保存彩信内容体
sess.save(mmsContent);
}
deliverMsg.setContent(mmsContent);
// 保存Deliver消息
deliverID = ((Integer) sess.save(deliverMsg)).intValue();
tx.commit();
System.out.println(deliverMsg.toString());
} catch (Exception e) {
e.printStackTrace();
deliverID = 0;
//HibernateUtil.closeSession();
}
finally{
HibernateUtil.closeSession();
}
// 执行数据路由
Connection con = null;
CallableStatement state = null;
if (deliverID != 0){
try {
sess = HibernateUtil.currentSession();
con = sess.connection();
Transaction tx1 = sess.beginTransaction();
log.debug("调用存储过程: MMS_PSysDeliverRouter");
state = con.prepareCall("{call MMS_PSysDeliverRouter (?)}");
state.setInt(1, deliverID);
state.execute();
tx1.commit();
state.close();
} catch (Exception e2) {
e2.printStackTrace();
} finally {
try {
if (state != null) {
state.close();
}
} catch (SQLException e1) {
e1.printStackTrace();
}
// 关闭会话
HibernateUtil.closeSession();
}
}
else{
// 关闭会话
HibernateUtil.closeSession();
}
}
/**
* 处理到VASP的Submit报告
*
* @param mm7DeliveryReportReq
* 收到的状态报告
*/
public MM7VASPRes doDeliveryReport(MM7DeliveryReportReq mm7DeliveryReportReq) {
// 累加统计计数器
RecverStaticInfo.getInstance().addReportNum();
// 将收到的SubmitReport消息在界面上打印出来
StringBuffer buffer = new StringBuffer();
buffer.append("-----收到SubmitReport消息-----\n");
buffer.append("recvTime: " + TimeOperate.getNowTime() + "\n");
buffer.append("srcNum: " + mm7DeliveryReportReq.getSender() + "\n");
buffer.append("transactionID: "
+ mm7DeliveryReportReq.getTransactionID() + "\n");
buffer.append("messageID: " + mm7DeliveryReportReq.getMessageID()
+ "\n");
buffer.append("gatewayID: " + this.gwGateWayID + "\n");
buffer.append("dstNum: " + mm7DeliveryReportReq.getRecipient() + "\n");
buffer.append("mmStatus: " + mm7DeliveryReportReq.getMMStatus() + "\n");
buffer.append("statusText: " + mm7DeliveryReportReq.getStatusText()
+ "\n");
System.out.println(buffer.toString());
// 记录到接收帐单中
bill.log(buffer.toString());
// 组长应答消息
MM7DeliveryReportRes res = new MM7DeliveryReportRes();
res.setTransactionID(mm7DeliveryReportReq.getTransactionID());
res.setStatusCode(1000);
Session sess = HibernateUtil.currentSession();
Transaction tx = sess.beginTransaction();
Connection con = sess.connection();
CallableStatement state = null;
// 记录状态报告,调用存储过程 MMS_PSysSetDeliverReport
try {
log.debug("调用存储过程 MMS_PSysSetDeliverReport");
state = con.prepareCall("{call MMS_PSysSetDeliverReport (?, ?)}");
int j = 0;
state.setString(++j, mm7DeliveryReportReq.getMessageID());
state.setInt(++j, mm7DeliveryReportReq.getMMStatus());
state.execute();
tx.commit();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (state != null) {
state.close();
}
} catch (SQLException e1) {
e1.printStackTrace();
}
HibernateUtil.closeSession();
}
return res;
}
/**
* 处理到VASP的ReadReply
*
* @param mm7ReadReplyReq
* 收到的状态报告
*/
public MM7VASPRes doReadReply(MM7ReadReplyReq mm7ReadReplyReq) {
// 累加统计计数器
RecverStaticInfo.getInstance().addReadNum();
// 将收到的SubmitReport消息在界面上打印出来
StringBuffer buffer = new StringBuffer();
buffer.append("-----收到ReadReply消息-----\n");
buffer.append("recvTime: " + TimeOperate.getNowTime() + "\n");
buffer.append("srcNum: " + mm7ReadReplyReq.getSender() + "\n");
buffer.append("dstNum: " + mm7ReadReplyReq.getRecipient() + "\n");
buffer.append("transactionID: " + mm7ReadReplyReq.getTransactionID()
+ "\n");
buffer.append("messageID: " + mm7ReadReplyReq.getMessageID() + "\n");
buffer.append("gatewayID: " + this.gwGateWayID + "\n");
buffer.append("mmStatus: " + mm7ReadReplyReq.getMMStatus() + "\n");
buffer.append("statusText: " + mm7ReadReplyReq.getStatusText() + "\n");
System.out.println(buffer.toString());
// 记录阅读报告到日志中
bill.log(buffer.toString());
MM7ReadReplyRes res = new MM7ReadReplyRes();
res.setTransactionID(mm7ReadReplyReq.getTransactionID());
res.setStatusCode(1000);
Session sess = HibernateUtil.currentSession();
Transaction tx = sess.beginTransaction();
Connection con = sess.connection();
CallableStatement state = null;
// 记录状态报告,调用存储过程 MMS_PSysSetDeliverReport
try {
log.debug("调用存储过程 MMS_PSysSetReadReport");
state = con.prepareCall("{call MMS_PSysSetReadReport (?)}");
int j = 0;
state.setString(++j, mm7ReadReplyReq.getMessageID());
state.execute();
tx.commit();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (state != null) {
state.close();
}
} catch (SQLException e1) {
e1.printStackTrace();
}
HibernateUtil.closeSession();
}
return res;
}
/**
* 取出合法的目的号码
*
* @param request
* Deliver请求消息
* @return 合法的目的号码
*/
private String getValidDstNum(MM7DeliverReq request) {
// 取出合法的目的号码
String dstNum = null, tmpNum = null;
for (int i = 0; i < request.getTo().size(); i++) {
tmpNum = (String) request.getTo().get(i);
if (tmpNum.indexOf(gwServiceID) == 0) {
dstNum = tmpNum;
}
}
if (dstNum == null) {
for (int i = 0; i < request.getCc().size(); i++) {
tmpNum = (String) request.getCc().get(i);
if (tmpNum.indexOf(gwServiceID) == 0) {
dstNum = tmpNum;
}
}
}
if (dstNum == null) {
for (int i = 0; i < request.getBcc().size(); i++) {
tmpNum = (String) request.getBcc().get(i);
if (tmpNum.indexOf(gwServiceID) == 0) {
dstNum = tmpNum;
}
}
}
return dstNum;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -