免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1874 | 回复: 0
打印 上一主题 下一主题

移动MISC1.6平台Provision同步接口开发(Tomcat5.5 + AXIS1.2) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-07-07 18:05 |只看该作者 |倒序浏览
移动MISC1.6平台Provision同步接口开发(Tomcat5.5 + AXIS1.2)
[color="#ff0000"]----------------------------------------------------------------
[color="#ff0000"]/**
[color="#ff0000"] *   版权:  雪夜清风 [ Jeansan]   所有 ;
[color="#ff0000"] *
[color="#ff0000"] *   MSN:
qingfeng0826@hotmail.com
[color="#ff0000"] *   QQ  : 331999816
[color="#ff0000"] *
[color="#ff0000"] *  */
[color="#ff0000"]----------------------------------------------------------------
[color="#ff0000"]

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

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

1、    配置好AXIS 1.2
2、    将wsdl 文件 copy 到  TOMCAT_HOMEwebappsaxisWEB-INF 下

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


  
   
   
     
     
   
   
   
   
     
     
     
   
   
   
   
     
     
     
     
     
   
   
   
   
   
   
   
     
     
     
     
     
     
     
     
     
     
     
     
     
   
   
   
   
   
     
     
     
   
   
   
   
   
     
     
     
     
     
     
     
     
   
   
   
   
   
     
     
     
     
   
   
   
   
   
     
     
     
     
     
     
     
   
   
   
   
   
     
     
     
   
   
  


  
  


  
  


  
  


  
  


  
  


  
  


  
   
   
  
  
   
   
  
  
   
   
  


  
  
   
   
   
   
   
   
   
   
   
  
  
   
   
   
   
   
   
   
   
   
  
  
   
   
   
   
   
   
   
   
   
  


  
   
  



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

建立服务端和客户端的服务。
如果建立服务不成功,可以直接将commonternetwwwdsmpwsdl下的deploy.wsdd中的...之间的文字直接拷贝到server-config.wsdd文件中。
查看服务,如果没有发布成功是因为没有生成相关的class文件,可以先编译MaPortBindingSkeleton.java文件,然后查看是否发布。

6、    编写测试代码:

[color="#000000"]
[color="#000000"]package com.misc.client;
[color="#000000"]import java.math.BigInteger;
[color="#000000"]import java.net.URL;
[color="#000000"]import javax.xml.rpc.holders.StringHolder;
[color="#000000"]import com.monternet.www.dsmp.schemas.Address_info_schema;
[color="#000000"]import com.monternet.www.dsmp.schemas.SyncOrderRelationReqType;
[color="#000000"]import com.monternet.www.dsmp.schemas.SyncOrderRelationRespType;
[color="#000000"]import com.monternet.www.dsmp.schemas.User_id_schema;
[color="#000000"]import com.monternet.www.dsmp.schemas.holders.SyncOrderRelationRespTypeHolder;
[color="#000000"]import com.monternet.www.dsmp.wsdl.MaPortBindingStub;
[color="#000000"]//import com.monternet.www.dsmp.*;
/*
[color="#000000"] * 移动MISC系统升级,SP客户端测试环境
[color="#000000"] */
[color="#000000"]public class miscClient {

    private static BigInteger msg;
[color="#000000"]    public static void main(String[] args) {
[color="#000000"]        MaPortBindingStub binding = null;
[color="#000000"]        SyncOrderRelationRespType resp = null;
[color="#000000"]        SyncOrderRelationReqType req=new SyncOrderRelationReqType();
[color="#000000"]        SyncOrderRelationRespTypeHolder syncOrderRelationOutput = new SyncOrderRelationRespTypeHolder();
[color="#000000"]        StringHolder transactionIDOut = new StringHolder();      
[color="#000000"]        /**
[color="#000000"]         *
[color="#000000"]         *   TransactionID 由返回的provision包里面的对应字段来决定,然后放到响应包里面的对应字段
[color="#000000"]         *   TransactionID不是sp生成的
[color="#000000"]         *
[color="#000000"]         */      
[color="#000000"]        // 根据 -  数据业务管理平台接口规范-1.5.1 定义。可以参考schemas 下的类文件      
[color="#000000"]        BigInteger devicetypeSend_Address = BigInteger.valueOf(201);
[color="#000000"]        BigInteger devicetypeDest_Address = BigInteger.valueOf(0);
[color="#000000"]        BigInteger UserIDTypeFeeUser_ID = BigInteger.valueOf(1);
[color="#000000"]        BigInteger ActionID = BigInteger.valueOf(1);
[color="#000000"]        BigInteger ActionReasonID = BigInteger.valueOf(1);
[color="#000000"]        BigInteger AccessMode = BigInteger.valueOf(3);
      
        byte[] pseudoCode = new byte[]{};
[color="#000000"]        
[color="#000000"]        // 对于一些固定的值来决定
[color="#000000"]        Address_info_schema Send_Address = new Address_info_schema();
[color="#000000"]        Send_Address.setDeviceID("misc");
[color="#000000"]        Send_Address.setDeviceType(devicetypeSend_Address);

[color="#000000"]        Address_info_schema Dest_Address = new Address_info_schema();
[color="#000000"]        Dest_Address.setDeviceID("1212");
[color="#000000"]        Dest_Address.setDeviceType(devicetypeDest_Address);
        User_id_schema FeeUser_ID = new User_id_schema();
        FeeUser_ID.setMSISDN("13583153328");
        FeeUser_ID.setUserIDType(UserIDTypeFeeUser_ID);
        FeeUser_ID.setPseudoCode(pseudoCode);

        User_id_schema DestUser_ID = new User_id_schema();
        DestUser_ID.setMSISDN("13583153328");
        DestUser_ID.setUserIDType(UserIDTypeFeeUser_ID);
        DestUser_ID.setPseudoCode(pseudoCode);
        /**
         *  给请求赋值
         */
        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("082601");
        req.setSPServiceID("dz");
        req.setAccessMode(AccessMode);      
        try {
            URL endpoint = new URL("
http://localhost:8080/axis/services/maPort
");  //详细见说明1 和说明 2  说明3
            binding = (MaPortBindingStub) new com.monternet.www.dsmp.wsdl.DsmpLocator().getmaPort(endpoint);
            binding.setTimeout(60000);
            
            binding.syncOrderRelation(req,"00240301806870",syncOrderRelationOutput,transactionIDOut);
            resp = syncOrderRelationOutput.value;
            String tranID = transactionIDOut.value;
            
            System.out.println(tranID);
            System.out.println(resp.getMsgType());
            System.out.println(resp.getVersion());
            System.out.println(resp.getHRet());
            if((resp.getHRet()).equals("0")){
             System.out.println("Transact Success!");
            }
        }
        catch (Exception e) {  
            e.printStackTrace();
        }      
   
    }  
}





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

说明2、 该URL指向本地的服务地址,一定要保证 访问该URL时候提示为:maPortHi there, this is an AXIS service! Perhaps there will be a form for invoking the service here...

说明3 、本出URL</sp

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8202/showart_34553.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP