mm7 彩信web项目接收数据的代码以及有关问题

mm7 彩信web项目接收数据的代码以及问题首先是在tomcat上运行的web项目,在接收彩信中心发送的数据时却是使

mm7 彩信web项目接收数据的代码以及问题

首先是在tomcat上运行的web项目,在接收彩信中心发送的数据时却是使用了普通的应用程序模式

代码如下,用监听器打开:

/** * 监听器,监听联通彩信接收 * @author fudl * */public class ReceiveListener implements ServletContextListener {private static Log log = LogFactory.getLog(ReceiveListener.class);private static ReceiveMgr receMgr = new ReceiveMgr();public void contextDestroyed(ServletContextEvent event) {log.info("=========================\n结束接收联通彩信服务 end...");log.info("\n=========================");receMgr.stop();Runtime.getRuntime().exit(0); }public void contextInitialized(ServletContextEvent event) {log.info("=========================\n监听接收联通彩信服务 start...");log.info("\n=========================");receMgr.setConfig(ReceiveMgr.mm7Config);        receMgr.start();}}

?

?

ReceiveMgr代码如下:

public class ReceiveMgr extends MM7Receiver{        private static ReportMgr reportMgr = MgrFactory.getInstance("reportMgr", ReportMgr.class);    private static DeliverMgr deliMgr = MgrFactory.getInstance("deliMgr", DeliverMgr.class);    public static MM7Config mm7Config = null;    private static Log log = LogFactory.getLog(ReceiveMgr.class);            public ReceiveMgr() {    //初始化vasp接收器String path = "/conf/mm7Config.xml";    String configPath = getUrlPath(path);    mm7Config = new MM7Config(configPath);    String connPath = getUrlPath("/conf/ConnConfig.xml");    mm7Config.setConnConfigName(connPath);    }        /**     * 接收联通的彩信内容并且提取有用信息     */    public MM7VASPRes doDeliver(MM7DeliverReq request) {            DeliverBean deliBean = deliMgr.getMmsInfoByDeliver(request);               if(deliBean == null){        log.info("采集数据失败..");        return null;        }        //保存到数据库                .......................                MM7DeliverRes res = new MM7DeliverRes();        res.setTransactionID(request.getTransactionID());        //设置成功状态,以便表明SP已经接收到传送消息 1000        res.setStatusCode(MMConstants.RequestStatus.SUCCESS);                //返回给MM7 API,以便API将MM7DeliverRes返回给MMSC        return (MM7VASPRes)res;    }        //接收回复报告    public MM7VASPRes doDeliveryReport(MM7DeliveryReportReq mm7DeliveryReportReq) {        MM7DeliveryReportRes res = new MM7DeliveryReportRes();        res.setTransactionID(mm7DeliveryReportReq.getTransactionID());        res.setStatusCode(MMConstants.RequestStatus.SUCCESS);        byte b = mm7DeliveryReportReq.getMMStatus();        if (b == 1 || mm7DeliveryReportReq.getStatusText().endsWith("OK")) {        }                ReportBean reportBean = reportMgr.fillReportBean(mm7DeliveryReportReq);        //update or insert        //reportMgr.mergeInto(reportBean);        reportMgr.recordRroportBean(reportBean);        log.info(" |mm7DeliveryReportReq| \n"+mm7DeliveryReportReq.toString());        return (MM7VASPRes)res;    }    public MM7VASPRes doReadReply(MM7ReadReplyReq mm7ReadReplyReq) {        MM7ReadReplyRes res = new MM7ReadReplyRes();        res.setTransactionID(mm7ReadReplyReq.getTransactionID());        res.setStatusCode(MMConstants.RequestStatus.SUCCESS);        int report_stat = 0;        String report_statusText = mm7ReadReplyReq.getStatusText();        return res;    }       /**    * 获得真实路径            * api读取相对路径有问题,所以写了一个读取相对路径的方法,然后把绝            对路径传给api    * @param path    * @return    */   private String getUrlPath(String path){    String urlPath = null;    if(!path.isEmpty()){    //注意加载资源文件的写法  /表示从根目录开始  否则就表示从当前类所在的路径下开始      URL url = this.getClass().getResource(path);     urlPath = url.getPath();    }    return urlPath;    } }

?

虽然api提供web方式的接收数据方式,但是不知道是配置原因还是什么,老是接收不到数据,希望有牛人解答啊

?

         <mmscURL>/mm7(不知道什么用,难道和web方式接收有关)</mmscURL><mmscIP>联通提供的ip和port</mmscIP><MmscID>同样联通提供</MmscID><UseSSL>true</UseSSL><ListenIP>自己的ip需上报联通设置</ListenIP><ListenPort>端口号</ListenPort>

?web方式代码:

public class MyReceiver extends MM7RecieveServlet{public MM7VASPRes doDeliver(MM7DeliverReq request){           return(MM7VASPRes)mm7DeliverRes;}}

?实在搞不懂为什么接收不到数据,求解答啊。。。

?

另外,上述线程接收方式,不太稳定,抓包得知能收到数据,但是解析不了,所以时有彩信发送不了的情况

用的包是mm7api.jar。

1 楼 xuan 2011-03-04   没有人知道么。。自己先顶。。 2 楼 kw73b 2012-05-08   你这个 web方式接收状态报告的问题解决了吗  我也遇到同样的问题了qq  1468788657  麻烦联系我  谢谢