移动MISC系统sp升级开发

历年安徽省省赛AHOI初中组考点分类汇总考点分类汇总 持续更新中..... 阅读详情

----------------------------------------------------------------

/**

 *   版权:  石太祥 [ E.Alpha ]   所有 ;

 *

 *   email:     ealpha(AT)msn(DOT)com  ;

 *   msn: ealpha(AT)msn(DOT)com  ;

 *   QQ  : 9690501

 *

 *  所有转载请注明本信息!

 */

----------------------------------------------------------------

 

 

说明 : 系统采用AXIS,如果无axis知识,建议可以到IBM开发者上搜索相关 AXIS 文档浏览

 

—————————————————————————————————————

 

1、    配置好AXIS

2、    将wsdl 文件 copy 到  /TOMCAT_HOME/webapps/axis/WEB-INF 下

 

Wsdl 文件由于MISC提供的不能生成 header ;经过修改以后的新的WSDL文件为:

 

<definitions xmlns:ws="http://www.monternet.com/dsmp/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.ort/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:dsmp="http://www.monternet.com/dsmp/schemas/" targetNamespace="http://www.monternet.com/dsmp/wsdl/">

<types>

  <schema targetNamespace="http://www.monternet.com/dsmp/schemas/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified">

   <complexType name="address_info_schema">

    <sequence>

     <element name="DeviceType" type="xsd:integer"/>

     <element name="DeviceID" type="xsd:string"/>

    </sequence>

   </complexType>

   <complexType name="user_id_schema">

    <sequence>

     <element name="UserIDType" type="xsd:integer"/>

     <element name="MSISDN" type="xsd:string"/>

     <element name="PseudoCode" type="xsd:base64Binary"/>

    </sequence>

   </complexType>

   <!-- request & response -->

  

   <element name="TransactionID" type="xsd:string"/>

  

  

   <element name="SyncOrderRelationReq" type="dsmp:SyncOrderRelationReqType"/>

   <complexType name="SyncOrderRelationReqType">

    <sequence>

     <element name="Version" type="xsd:string"/>

     <element name="MsgType" type="xsd:string"/>

     <element name="Send_Address" type="dsmp:address_info_schema"/>

     <element name="Dest_Address" type="dsmp:address_info_schema"/>

     <element name="FeeUser_ID" type="dsmp:user_id_schema"/>

     <element name="DestUser_ID" type="dsmp:user_id_schema"/>

     <element name="LinkID" type="xsd:string" minOccurs="0"/>

     <element name="ActionID" type="xsd:integer"/>

     <element name="ActionReasonID" type="xsd:integer"/>

     <element name="SPID" type="xsd:string" minOccurs="0"/>

     <element name="SPServiceID" type="xsd:string"/>

     <element name="AccessMode" type="xsd:integer" minOccurs="0"/>

     <element name="FeatureStr" type="xsd:base64Binary" minOccurs="0"/>

    </sequence>

   </complexType>

   <element name="SyncOrderRelationResp" type="dsmp:SyncOrderRelationRespType"/>

   <complexType name="SyncOrderRelationRespType">

    <sequence>

     <element name="Version" type="xsd:string"/>

     <element name="MsgType" type="xsd:string"/>

     <element name="hRet" type="xsd:integer"/>

    </sequence>

   </complexType>

  </schema>

</types>

 

 

<message name="ma.SyncOrderRelationReq">

  <part name="SyncOrderRelationInput" element="dsmp:SyncOrderRelationReq"/>

  <part name="TransactionIDInput" element="dsmp:TransactionID"/>

</message>

 

<message name="ma.SyncOrderRelationResp">

  <part name="SyncOrderRelationOutput" element="dsmp:SyncOrderRelationResp"/>

  <part name="TransactionIDOut" element="dsmp:TransactionID"/>

</message>

 

<portType name="maPort">

  <operation name="SyncOrderRelation">

   <input message="ws:ma.SyncOrderRelationReq"/>

   <output message="ws:ma.SyncOrderRelationResp"/>

  </operation>

</portType>

 

<binding name="maPortBinding" type="ws:maPort">

  <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

  <operation name="SyncOrderRelation">

   <soap:operation  style="document" soapAction="sim.SyncOrderRelation"/>

   <input>   

    <soap:body use="literal" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.monternet.com/dsmp/schemas/"/>

    <soap:header  message="ws:ma.SyncOrderRelationReq" part="TransactionIDInput" use="literal" encodingStyle="http://schemas.xmlsoap.org/soap/encoding" namespace="http://www.w3.org/2001/XMLSchema"/>   

   </input>

   <output>

    <soap:body use="literal" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.monternet.com/dsmp/schemas/"/>

    <soap:header style="document"  message="ws:ma.SyncOrderRelationResp" part="TransactionIDOut" use="literal" encodingStyle="http://schemas.xmlsoap.org/soap/encoding" namespace="http://www.w3.org/2001/XMLSchema"/>

   </output>

  </operation>

</binding>

<service name="dsmp">

  <port name="maPort" binding="ws:maPortBinding">

   <soap:address location="http://localhost/axis/services/maPort"/>

  </port>

</service>

</definitions>

 

 

3、    生成客户端,服务端代码:
使用命令:Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java --server-side --skeletonDeploy true dsmp.wsdl

4、    deploy.wsdd              用来发布service
MaPortBindingImpl.java   
服务短编程使用

MaPortBindingStub.java   
客户端编程使用

5、    建立服务:

使用命令 :java org.apache.axis.utils.Admin client|server deploy.wsdd

 

建立服务端和客户端的服务。

 

6、    编写客户端测试代码:

 

package com.smsmail.misc;

 

import java.math.BigInteger;

import java.net.URL;

 

import javax.xml.rpc.holders.StringHolder;

 

import com.monternet.www.dsmp.schemas.Address_info_schema;

import com.monternet.www.dsmp.schemas.SyncOrderRelationReqType;

import com.monternet.www.dsmp.schemas.SyncOrderRelationRespType;

import com.monternet.www.dsmp.schemas.User_id_schema;

import com.monternet.www.dsmp.schemas.holders.SyncOrderRelationRespTypeHolder;

import com.monternet.www.dsmp.wsdl.MaPortBindingStub;

 

/*

 * 移动MISC系统升级,SP客户端测试环境

 */

public class ClientTest {

 

    private static BigInteger msg;

 

    public static void main(String[] args) {

       

        MaPortBindingStub binding = null;

        SyncOrderRelationRespType value = null;

        SyncOrderRelationReqType req=new SyncOrderRelationReqType();

        SyncOrderRelationRespTypeHolder syncOrderRelationOutput = new SyncOrderRelationRespTypeHolder();

        StringHolder transactionIDOut = new StringHolder();

       

       

        /**

         *

         *   TransactionID 由返回的provision包里面的对应字段来决定,然后放到响应包里面的对应字段

         *   TransactionID不是sp生成的

         *

         */

       

       

        // 根据 -  数据业务管理平台接口规范-1.5.1 定义。可以参考schemas 下的类文件      

        BigInteger devicetypeSend_Address = BigInteger.valueOf(201);

        BigInteger devicetypeDest_Address = BigInteger.valueOf(0);

        BigInteger UserIDTypeFeeUser_ID = BigInteger.valueOf(1);

        BigInteger ActionID = BigInteger.valueOf(1);

        BigInteger ActionReasonID = BigInteger.valueOf(1);

        BigInteger AccessMode = BigInteger.valueOf(3);

       

        // 对于一些固定的值来决定

       

        Address_info_schema Send_Address = new Address_info_schema();

        Send_Address.setDeviceID("dev");

        Send_Address.setDeviceType(devicetypeSend_Address);

       

        Address_info_schema Dest_Address = new Address_info_schema();

        Dest_Address.setDeviceID("0011");

        Dest_Address.setDeviceType(devicetypeDest_Address);

       

       

        User_id_schema FeeUser_ID = new User_id_schema();

        FeeUser_ID.setMSISDN("13817931870");

        FeeUser_ID.setUserIDType(UserIDTypeFeeUser_ID);

 

        User_id_schema DestUser_ID = new User_id_schema();

        DestUser_ID.setMSISDN("13817931870");

        DestUser_ID.setUserIDType(UserIDTypeFeeUser_ID);

 

        /**

         *  给请求赋值

         */

       

        req.setMsgType("SubscribeServiceReq");     

        req.setVersion("1.5.0");

        req.setSend_Address(Send_Address);

        req.setDest_Address(Dest_Address);

        req.setFeeUser_ID(FeeUser_ID);

        req.setDestUser_ID(DestUser_ID);

        req.setLinkID("");   // 可选

        req.setActionID(ActionID);

        req.setActionReasonID(ActionReasonID);

        req.setSPID("800001");

        req.setSPServiceID("+021");

        req.setAccessMode(AccessMode);     

       

        try {

            URL endpoint = new URL("http://localhost:808/axis/services/maPort");  //详细见说明1 和说明 2  说明3

            binding = (MaPortBindingStub) new com.monternet.www.dsmp.wsdl.DsmpLocator().getmaPort(endpoint);

             binding.setTimeout(60000);

            

            binding.syncOrderRelation(req,"27",syncOrderRelationOutput,transactionIDOut);

           

 

        }

        catch (Exception e) { 

            e.printStackTrace();

        }

       

    }

   

}

 

 

 

 

说明1、 该URL是在真实环境中提交给 MISC平台的地址;

 

说明2、 该URL指向本地的服务地址,一定要保证 访问该URL时候提示为:

maPort

Hi there, this is an AXIS service!

Perhaps there will be a form for invoking the service here...

 

说明3 、本出URL的地址中端口为 808 是因为在 TCPMonitor中设置 监听端口转发为 808。 如果不开启TCPMonitor 则直接设置为8080

 

 

7、    编写服务短返回代码

 

        // 添加返回

        SyncOrderRelationRespType ret = new SyncOrderRelationRespType();

       

        BigInteger hret = BigInteger.valueOf(0);

       

        ret.setMsgType("SubscribeServiceResp");

        ret.setHRet(hret);

        ret.setVersion("1.5.0");

        //return null;

 

8、    问题解决:

 

 

n         由于每次请求的SOAP 报文命名空间问题。

采用修改AXIS 1.2版本的源文件:源文件为    (该文件由网友提供,无源代码)

 

n         包含 xmls=““ 问题

 

修改 SerializationContextImpl.java 文件,按照如下修改

 

public String qName2String(QName qName, boolean writeNS)
    {
        String prefix = null;
        String namespaceURI = qName.getNamespaceURI();

        if (namespaceURI.length() == 0) {
            if (writeNS) {
                // If this is unqualified (i.e. prefix ""), set the default
                // namespace to ""
                String defaultNS = nsStack.getNamespaceURI("");
                if (defaultNS != null && defaultNS.length() > 0) {
        
            //registerPrefixForURI("", "");

                }
            }
        } else {
            prefix = getPrefixForURI(namespaceURI);
        }

        if ((prefix == null) || (prefix.length() == 0))
           return qName.getLocalPart();

        StringBuffer sb = new StringBuffer(prefix);
        sb.append(':');
        sb.append(qName.getLocalPart());
        return sb.toString();
    }

 

 

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况 主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。 立即下载

相关推荐

Debian 11 之使用hostapd与dnsmasq进行AP设置

本文介绍debian 11 系统下,使用hostapd 和 dnsmasq配置无线热点的方法。

xinghaitao2005的博客 1695

查看 Webservices 发布是否成功

   输入测试地址:   http://sso.juapk.com/services/SSOAxis       出现下提示!     SSOAxis Hi there, this is an AXIS service! Perhaps there will be a form for invoking the service here...       难道...

轻描淡写 2330

LPDDR4x 深度解析(3) - SDRAM核心操作机制

本文深入解析LPDDR4x SDRAM的核心操作机制,包括基础架构、刷新操作、读写流程及低功耗设计。详细介绍了存储阵列、地址解码器等关键模块,以及自刷新与自动刷新模式的区别。通过实测数据和技术细节,揭示LPDDR4x在性能优化和功耗控制方面的创新设计,为硬件工程师提供实用参考。

weixin_29278805的博客 308

wsdl

啥是wsdl?到现在也不知道。java项目里的wsdl怎么用?也不知道。总之就是能通过下面的地址获取到一个xml格式的list。 遇到的问题?通过http://域名/wsdl所在的目录?wsdl的时候,报404. 解决思路:一顿google,统一的说法是端口不正确,没当回事是最大的错误。绕了一圈。 正确思路:首先到部署app所在的tomcat下,使用上面的地址直接wget一下,看是否能拉到那...

davidliuzkw的博客 1060

HFSS的边界条件与激励方式

在电磁场理论学习中我们知道,电磁场问题的求解都归结于麦克斯韦(Maxwell)方程组的求解,在HFSS中波动方程的求解同样是由微分形式的麦克斯韦方程推导出来的。而边界条件定义了求解区域的边界以及不同物体交界处的电磁场特性,是求解麦克斯韦方程的基础。 只有在假定场矢量是单值、有界、并且沿空间连续分布的前提下,微分形式的麦克斯韦方程组才是有效的;而在求解区域的边界,不同介质的交界处和场源处,场矢量是不连续的,那么场的导数也就失去了意义。 边界条件就是定义跨越不连续边界处的电磁场特性,因此,正确地理解、定义并

ASH_GUARDIAN的博客 1万+

基于立创开源ESP32步进电机驱动板硬件设计与优化实践

本文详细介绍了基于立创开源平台的ESP32步进电机驱动板硬件设计与优化实践。重点解析了ESP32-PICO-D4与A4950驱动芯片的选型搭配、电源电路噪声隔离、PCB布局布线技巧以及保护电路设计,为开发者提供了从原理图到PCB的完整优化方案,有效提升驱动板的性能与稳定性。

7z8x2c4v6b9的博客 645

Apache Axis用户指南(3)

本部分是apache axis用户指南的第三部分。在Axis中使用WSDL文件。10.使用WSDLWeb Service Description Language是由IBM和Microsoft完成的规范,并且被很多其他的组织所支持。WSDK用于结构化的描述Web Services。Web服务的WSDL是由程序来使用的,它包含了服务的接口,服务使用的数据类型以及服务的位置。更多的内容,可以参

zhouqixiang的专栏 3189

WRF模式学习入门基础(建议收藏!!!)

本文详细介绍了WRF-ARW(Advanced Research WRF)模式的结构组成,重点讲解了前处理系统(WPS)和主模式中的各个关键程序的功能与流程。通过对geogrid、ungrib、metgrid、real和wrf等模块的逐步解析,帮助初学者全面理解数值天气预报模型在初始化和运行过程中所需的关键步骤。

2503_90234341的博客 3074

Axis2实践

以前开发webservice使用IBM工具比较简单,最近重新感觉一下使用AXIS2。 基本步骤: 1 eclipse 2 axis2文件 3 tomcat容器/jetty 创建javaBean,反向为wsdl,同时使用wsdl制作client。 http://localhost/a/services/TestCal TestCal ...

weixin_34391854的博客 197

重回童年的经典系列☀️| 【坦克大战3D版】游戏制作+解析

带你重回童年的经典系列——坦克大战3D版制作,感兴趣的可以看看呀~

努力前行,总会成为自己心中的那道光 5万+

机器学习实战26-一种基于LightGBM的股市涨跌预测系统与代码实现过程

在全球经济一体化的背景下,股市作为经济活动的晴雨表,其波动与预测对于投资者、金融机构乃至国家政策制定者而言至关重要。随着金融市场的日益复杂化与信息量的爆炸式增长,股市分析不再仅限于基本面和技术面的传统研究,而是迫切需要更加精准、高效及智能化的方法来捕捉市场动态,以辅助决策制定。模型评估是确保LightGBM股市预测系统准确性和稳定性不可或缺的一环。通过综合运用多种评估指标、科学的验证方法以及深入的性能分析,我们不仅能够全面理解模型的能力和限制,还能为持续优化模型、提升预测准确性奠定坚实基础。

微学AI的博客 2327

Jboss3.0.7_tomcat_4.1.24的axis配置

Jboss3.0.7_tomcat_4.1.24的axis配置author:帅牛士 email:trynews@163.com一.把C:/jboss-3.0.7_jakarta-tomcat-4.1.24/server/all/deploy目录里的jboss-net.sar文件解压,把里面的文件解到jboss-net.sar目录里,然后把jboss-net.sar文件备份到其它目录,如c:

doli的专栏 1412

【100%通过率】2024华为OD机试真题E卷 C++ 实现【栈数据合并/空栈压数】

向一个空栈压入正整数,每当压入一个整数时,执行以下规则(设: 栈顶至栈底整数依次编号为n1、n2...nx, n1为最新压入的整数)

MISAYAONE的博客 1553

MISC系统短信SP接入培训

第一章、接口改造分册MISC系统结构和作用SP接入MISC流程CMPP3.0接口开发说明正反向订购接口开发说明网站改造SSO接口流程说明 一、MISC系统结构和作用 1、SP接入MISC流程  组织SP培训

[木子]的专栏 3458

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SP 短信开发-基础知识篇2(MISC系统短信SP接入培训)

导读:   MISC系统短信SP接入培训   第一章、接口改造分册...4   一、MISC系统结构和作用...4   1、SP接入MISC流程...4   2、SP接入MISC流程-流程说明...5   3、接口改造总体说明...5   4、接口改造需具备条件...6   二、CMPP协议...6   1、CMPP2.0和CMPP3.0区别-SP登录...6   2、CMPP2.0和CM

xiariguji的专栏 4604

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MISC系统

=============百度百科=============MISC系统,是指在移动梦网原有网关位置增加一个管理网元,通过这个系统,大量管理职权由SP转移至中国移动手中,同时违规行为和不良信息可以得到有效过滤。  MISC:(Mobile Information Service Center) 是为运营商提供的可快速启动各种数据业务的平台,是一个强大的资源调度平台。它连接运营商的基础网络及

665

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

WAP Push SP接口协议

1)DSMP Data Service Management Platform,数据业务管理平台。中国移动集团公司的移动数据业务平台,移动梦网计划(Monternet)的核心平台。数据业务管理平台, 是数据业务的管理核心平台,完成数据业务的业务管理和控制功能。数据业务管理平台主要负责用户管理、业务管理和SP管理,并对外提供开放接口并为各个业务网关、SP提供代计费功能。该平台还应提供数据业务相

no pay no gay 2145

WAP1.6 FAQ(面向SP)

WAP1.6 FAQ(面向SP)1、对SP来说,WAP业务的接入流程及步骤具体怎样?答:WAP业务的接入流程及步骤具体如下:序号    步骤1    将WAP业务的产品或应用程序开发好2    向移动公司提交申请3    移动公司对SP提交的WAP业务进行内容评审4    内容评审通过后,跟卓望公司在深圳测试环境进行MISC接口及页面规范测试,主要是(Provision接口、页面访问接口、反向定购

[木子]的专栏 1381

SMS短信开发技术

  SMS短信开发技术总结--协议篇   现在提供短信服务的SP都需要接入到各个移动运营商,虽然作为短信来说是同过SMPP协议和移动的交换中心进行通信。但是为了提供信息服务,对各种业务进行业务管理,以及计费,因此每个移动运营商都开发了相应的网关协议,给SP做开发接口。因此这些网关协议就是做一次转换,把SP发过来的信息转换成SMPP协议发送给交换中心,并且实现了计费以及业务的管理功能。 

JonnyWei的专栏 2981

短信开发技术总结--协议篇

 现在提供短信服务的SP都需要接入到各个移动运营商,虽然作为短信来说是同过SMPP协议和移动的交换中心进行通信。但是为了提供信息服务,对各种业务进行业务管理,以及计费,因此每个移动运营商都开发了相应的网关协议,给SP做开发接口。因此这些网关协议就是做一次转换,把SP发过来的信息转换成SMPP协议发送给交换中心,并且实现了计费以及业务的管理功能。   从现有的四个移动运营商来说,分别有四个不同的

技术收藏 911

短信陷阱爆光及解决方法!——退订每月偷你手机费的寄生虫!(转自淘宝论坛)

Josou首发于LZ BBS    去年,我已在星星发表了一个关于免费发短信的各类软件的黑幕所在。而事实上的SMS(即短信)的黑幕远不止于此,今天,我终于有空坐下来,把其中的一些让你感觉平常却实际触目惊心的事情告诉你们,让你们知道SMS为什么是抢钱的最佳方式!数据:2004年互联网全国总收入中,74%来源于网站嫁接了短信业务。手机短信如何让这些商家如此疯狂的敛财?不就一些手机文本短信嘛,为什么居然

wayne 我的陋室我做主 3172

SP短信平台的开发-1

现在的短信平台真的很多, 不过很多都非常的不稳定, 在去年接手一个短信项目后,开发了一个短信平台,使用Delphi+SqlServer 完全的使用运营商的底层通讯协议实现, 最终版本可以非常稳定的运行, 效率也绝对的,只怕是移动的短信网关给的端口速率太低(一般10条每秒)J  开发目标: 1.稳定运行,能够24*356高速稳定运行。 2.高效率,低资源占用。(在我笔记本上测试时可以

xz1980的专栏 622
下一篇: 初学Struts
ealpha
博客等级 码龄23年 1粉丝 52原创
评论 28
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值