`
rikugun
  • 浏览: 350993 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

卓望MISC1.6 的provision --无web服务器

    博客分类:
  • JAVA
阅读更多
根据那个图片上传处理服务器的思路,小改了一个处理器.尚未测试.
使用dom4j解析收到的XML 并返回处理结果

需要JDK6

/**
 * provision
 * @author rikugun
 */
public class CMPP3Provision {

    private static HttpServer hs;
    private static Logger logger = Logger.getLogger(CMPP3Provision.class.getName());

    static {
        try {
            logger.debug("初始化Http Server");
            hs = HttpServer.create(new InetSocketAddress(1234), 0); //设置HttpServer的端口为1234
            hs.createContext("/provision", new ProvisionHandler());
        } catch (IOException ex) {
            logger.warn("初始化Provision出错!", ex);
        }

    }

    public CMPP3Provision() {
    }

    public void Start() {
        hs.start();
    }

    public void Stop() {
        hs.stop(1);
    }
}


处理模块
/**
 * provision处理模块
 * @author rikugun
 */
public class ProvisionHandler implements HttpHandler {

    private static Logger logger = Logger.getLogger(ProvisionHandler.class.getName());
    private static Document dom, repDom;
    private static SAXReader saxReader = new SAXReader();

    @Override
    public void handle(HttpExchange t) throws IOException {
        logger.debug("获取同步信息,来自:"+t.getRemoteAddress().toString());
        logger.debug(t.getRequestHeaders().entrySet().toString());
        OutputStream os = t.getResponseBody();
        try {
            dom = saxReader.read(t.getRequestBody());
            repDom = doSync(dom);
            t.sendResponseHeaders(200, repDom.asXML().length());
            os.write(repDom.asXML().getBytes());
        } catch (DocumentException ex) {
            logger.warn("解析XML错误", ex);
            
        }

        os.close();
    }

    private Document doSync(Document dom) {
       logger.debug("--------获取到的XML--------");
        logger.debug(dom.asXML());
        logger.debug("--------获取到的XML--------");

        Element header = (Element) dom.getRootElement().element("Header");
        //transactionID
        String transactionID = header.elementText("TransactionID");
        Element body = (Element) dom.getRootElement().element("Body");
        Element syncOrderRelationReq = (Element) body.element("SyncOrderRelationReq");
        //UserId
        List<Element> msidn = body.selectNodes("ActionID");
        List<Element> user = body.selectNodes("//FeeUser_ID");

        //动作类型
        String actionId = syncOrderRelationReq.elementText("ActionID");

        //动作原因
        String actionReasonId = syncOrderRelationReq.elementText("ActionReasonID");

        //业务ID
        String serviceId = syncOrderRelationReq.elementText("SPServiceID");
        
        //附加参数
        String featureStr = syncOrderRelationReq.elementText("FeatureStr");

        //TODO 更新数据库中的用户订购信息

        SyncOrderRelationResp ret = new SyncOrderRelationResp(transactionID,"0");
        logger.debug("--------返回的XML--------");
        logger.debug(ret.getDocument().asXML());
        logger.debug("--------返回的XML--------");
        //返回执行成功的XML
        return ret.getDocument();
    }
}



辅助类
/**
 * 同步信息响应
 * @author rikugun
 */
public class SyncOrderRelationResp {
    //原始XML
    private static String raw = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
            "<SOAP-ENV:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
            " <SOAP-ENV:Header>\n" +
            "<TransactionID xmlns=\"http://www.monternet.com/dsmp/schemas/\">00240301659556</TransactionID>\n" +
            "</SOAP-ENV:Header>\n" +
            "<SOAP-ENV:Body>\n" +
            "<SyncOrderRelationResp xmlns:=\"http://www.monternet.com/dsmp/schemas/\">\n" +
            "<Version xsi:type=\"xsd:string\">1.5.0</Version>\n" +
            "<MsgType xsi:type=\"xsd:string\">SyncOrderRelationResp</MsgType>\n" +
            "<hRet xsi:type=\"xsd:integer\">1</hRet>\n" +
            "</SyncOrderRelationResp>\n" +
            "</SOAP-ENV:Body>\n" +
            "</SOAP-ENV:Envelope>";
    private static Document dom;
    private static Element transaction, hRet;

    static {
        try {
            dom = DocumentHelper.parseText(raw);
        } catch (DocumentException ex) {
            Logger.getLogger(SyncOrderRelationResp.class.getName()).warn("生成响应XML出错!", ex);
        }
        transaction = dom.getRootElement().element("Header").element("TransactionID");
        hRet = dom.getRootElement().element("Header").element("hRet");
    }

    /**
     * 定制消息反馈
     * @param transactionID 事务ID
     */
    public SyncOrderRelationResp(String transactionID) {
        transaction.setText(transactionID);
    }

    /**
     * 定制消息反馈
     * @param transactionID 事务ID
     * @param ret 返回值
     */
    public SyncOrderRelationResp(String transactionID, String ret) {
        transaction.setText(transactionID);
        hRet.setText(ret);
    }

    /**
     * 获取生成的结果Document
     * @return
     */
    public Document getDocument() {
        return dom;
    }
}

分享到:
评论

相关推荐

    卓望java笔试题-enukeAssignment:这是enuke软件给招聘节点工程师的作业

    卓望java笔试题enuke赋值 这是enuke软件给招聘节点工程师的作业 问:什么时候不使用 NodeJ 是个好主意? 为什么? 答。 Node.js 由于其单线程模型,不适合 CPU 密集型应用程序。 因此,如果应用程序具有大量计算,...

    卓望手机游戏业务交流材料--bjoloo.pptx

    ### 卓望手机游戏业务交流材料知识点解析 #### 一、手机游戏业务基本定义与分类 **手机游戏**指的是能够运行在手机上的游戏,这些游戏通常由专门的游戏开发商提供。根据运行环境的不同,手机游戏可以分为几大类别...

    卓望提供的MISC彩信订购关系同步测试工具httptest

    1、测试发送包 &lt;?xml version="1.0" encoding="utf-8"?&gt; ...&lt;SOAP-ENV:Header&gt; &lt;TransactionID xmlns="http://www.monternet.com/dsmp/schemas/"&gt;0011030165955 &lt;/SOAP-ENV:Header&gt; &lt;SOAP-ENV:Body&gt; ...

    前端开发简历模板-叶先生-web前端-2年.doc

    在项目经验方面,叶先生参与过卓望员工福利商城项目,该项目是基于Vue2.0全家桶的PC端商城系统,利用Element-UI组件库进行辅助开发。他还负责了Jax官网的前端工作,主要使用jQuery和Bootstrap实现页面交互和逻辑。...

    卓望WAP业务管理系统

    卓望WAP业务管理系统卓望WAP业务管理系统卓望WAP业务管理系统

    卓望DSMP接口,可直接用

    卓望DSMP接口卓望DSMP接口卓望DSMP接口卓望DSMP接口卓望DSMP接口

    中国移动DSMP系统--Radware 服务器负载均衡方案

    DSMP(Data Service Management Platform)是中国移动与卓望科技共同制定的技术标准,而卓望科技的MISC平台是基于此标准的产品。目前,MISC系统已在全国设立28个节点,服务于数千家SP和数万项业务,确保了“移动梦网...

    安财软件案例-深圳卓望财务共享解决方案.pdf

    因此,深圳卓望数码技术有限公司与深圳市安财软件有限公司携手合作,共同推出了针对移动运营商需求的财务共享解决方案,意在革新报销流程,提高整体财务效率。 该方案的核心依托是安财网上报销系统,一套集成了先进...

    安财软件案例-深圳卓望财务共享解决方案终稿.pdf

    本文档针对深圳卓望数码网上报销解决方案的实施细节进行了深入探讨,该方案由卓望数码技术(深圳)有限公司和深圳市安财软件有限公司合作推出,针对移动运营商的报销流程,旨在通过技术手段,提高报销流程的效率和...

    漂移与卓望「Wander&Aspire」-crx插件

    谨防! 下面的扩展可能会增加或减少你渴望前往真棒新的旅游目的地的渴望。 使用… 谨防! 下面的扩展可能会增加或减少你渴望前往真棒新的旅游目的地的渴望。 小心使用。 支持语言:English

    DSMP常用错误代码表

    - **104**:用户无此权限。表示用户没有进行某项操作所需的权限。 - **105**:业务代码错误。这可能是因为提供的业务代码不正确或无效。 - **106**:服务代码错误。同样是指服务代码不正确或无效。 - **107**:业务...

    卓望飞信音视频工程建设方案集团汇报晚会版XXXX.pptx

    《卓望飞信音视频工程建设方案》是中国移动通信集团设计院有限公司在2010年1月提出的一项针对315晚会的特殊工程计划。该方案旨在通过与中央电视台315栏目组的合作,展示TD网络和飞信在视频通话方面的功能。为了实现...

    卓望飞信音视频工程建设方案(集团汇报315晚会版)XXXX25.pptx

    3. 系统概述:工程在北京移动丰台机房新建一套飞信音视频平台,包括媒体控制服务器、媒体中转服务器、媒体网关和信令网关等关键设备。总投资为216万元,其中主设备价格197万元。 4. 系统功能与业务容量:系统设计能...

    软件测试工程师面试题库

    - 浏览器兼容性:对于Web应用而言,需测试在Chrome、Firefox、Safari等不同浏览器下的表现。 - 移动设备兼容性:包括iOS和Android平台的不同版本。 - 硬件兼容性:例如不同品牌的打印机、扫描仪等外设。 - ...

    WAP业务应用程序接口规范

    **WAP业务应用程序接口规范**,由卓望数码技术(深圳)有限公司于2002年发布,旨在为接入中国移动信息服务中心(MISC)平台的WAP业务服务提供商(SP)提供详细的应用程序接口(API)指南。该规范明确了MISC平台V1.5...

    SunloginClient-11.0.1.44968-amd64.deb

    SunloginClient是一款由卓望公司开发的远程桌面控制软件,主要应用于Linux系统,尤其是AMD64架构的机器。"SunloginClient-11.0.1.44968-amd64.deb"是该软件的一个特定版本,版本号为11.0.1,构建号为44968,且它是为...

Global site tag (gtag.js) - Google Analytics