操作失败,没有该服务权限![ 机构号:99 ,用户ID:50000009 ,服务号:0101030112 ]

此时我们可以把代码 SERVICE_NO 改成 10个0 即 0000000000 ,就可以进行权限查看.

然后把response响应大对象打印出来看看,就知道连到哪里去了

package com.isoftstone.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;

import com.isoftstone.core.common.tools.XmlTool;
import com.isoftstone.core.dto.RequestBusinessObject;
import com.isoftstone.core.dto.ResponseBusinessObject;
import com.isoftstone.fwk.dao.DaoException;
import com.isoftstone.fwk.util.SpringUtils;
import com.isoftstone.httpclient.ESBClient;
import com.isoftstone.platform.constants.PltmConstants;
import com.isoftstone.platform.service.PltmPacketService;
import com.isoftstone.platform.vo.PltmPacketVO;

public class JavaCTool {//需要晓飞最新esb.jar支持
    /** 创建一个logger对象 **/
    private static Logger logger = Logger.getLogger(JavaCTool.class);

    /**
     * 在进行特殊判断以后 , 调用javac保存与平台通信报文
     * 当前特殊判断只针对投保查询检验是不进行核心同步保存的,而是返回false
     * @param recvOutMap
     * @param pltmPacketVO
     * @param sendOutMap
     * @return
     */
    public static boolean callJavaCAfterJudgement(Map<String, List<Map<String, Object>>> recvOutMap ,PltmPacketVO pltmPacketVO,Map sendOutMap){
//        boolean flag = true;
//        if(sendOutMap != null){//此处的判断主是要因为 投保查询检验时,核心不需要第一次平台返回的提问报文,只需要第二次和平台通信的报文即可.所以如果是查询检验问题,那么return false,从而不发送报文给核心
//            List list = (List) sendOutMap.get("CHECKCODE");
//            if(list != null && list.size() > 0){//判断投保查询校验list是否存在
//                Map innerMap = (Map) list.get(0);
//                String renewalFlag = (String) innerMap.get("RENEWAL_FLAG") ;
//                if( renewalFlag != null ){
//                    if( "1".equals( renewalFlag ) ){
//                        flag =  false ;
//                    }
//                }
//            }
//        }
//        if(flag == true){
            return callJavaC(recvOutMap,pltmPacketVO,sendOutMap);
//        }else{
//            return false;
//        }
    }

    /*
     * @param  recvOutMap 接收外围map
     * @param  pltmPacketVo 本系统返回的大日志对象,包含接收外围,上平台,平台返回,发送外围,成功失败等内容.
     * @param  sendOutMap 发送给外围map
     */
    public static  boolean callJavaC(Map<String, List<Map<String, Object>>> recvOutMap ,PltmPacketVO pltmPacketVO,Map sendOutMap){
        PltmPacketService pltmPacketService = (PltmPacketService) SpringUtils.getSpringBean("pltmPacketService");
        ResponseBusinessObject responseBO = null;
        Map<String, List<Map<String, Object>>> sendV5Map = new HashMap<String, List<Map<String, Object>>>();//发送V5的通信 map
        try {
            List<Map<String, Object>> recvOutBaseList = recvOutMap.get("BASE");
            List<Map<String, Object>> recvOutVhlList = recvOutMap.get("VHL");
            if( (recvOutVhlList == null)||(recvOutVhlList.size()== 0) )
                return false;

            String dptcde = (String) recvOutBaseList.get(0).get("DPT_CDE");//8位出单机构
            List headList = (List) sendOutMap.get("HEAD");//ERROR_CODE   start
            if( (headList == null)||(headList.size()== 0) )
                return false;
            Map headMap = (Map)headList.get(0);
            List vhlList = (List) sendOutMap.get("VHL");//QUERY_SEQUENCE_NO   start
            if( (vhlList == null)||(vhlList.size()== 0) )
                return false;
            Map vhlmap = (Map)vhlList.get(0);

            Map<String, Object> recvOutVhlMap = recvOutVhlList.get(0);

            //错误码如果是0000表示平台通信完全正常,此时才继续往下走和v5通信
            if("0000".equals(headMap.get("ERROR_CODE")) &&PltmConstants.FOUR.equals(pltmPacketVO.getCSucMrk()) && PltmConstants.V5FAIL_MRK.equals(pltmPacketVO.getCSendV5Mrk())   ){
                //如果和平台交互标志为4
                //准备javaC通信,将数据填充到sendV5Map
                List<Map<String, Object>> baseList =
                Map<String,Object> baseMap = new HashMap<String,Object>();
                String cQueryCde = (String)vhlmap.get("QUERY_CDE");
                String cCarMark = (String)recvOutVhlMap.get("CAR_MARK");
                String cEngineNo = (String)recvOutVhlMap.get("ENGINE_NO");
                String cRackNo = (String)recvOutVhlMap.get("RACK_NO");
                baseMap.put("DPT_CDE",dptcde);//DPT_CDE   end
                baseMap.put("CAR_MARK",cCarMark);//CAR_MARK   end
                baseMap.put("ENGINE_NO",cEngineNo);//ENGINE_NO   end
                baseMap.put("RACK_NO",cRackNo);//RACK_NO   end
                baseMap.put("QUERY_SEQUENCE_NO",cQueryCde);//QUERY_SEQUENCE_NO   end
                baseMap.put("REQUESTXML", pltmPacketVO.getCSendPltm().replace("</", "$($").replace("/>", "$)$").replace("<", "#(#").replace(">", "#)#"));
                baseMap.put("RESPONSEXML", pltmPacketVO.getCRecvPltm().replace("</", "$($").replace("/>", "$)$").replace("<", "#(#").replace(">", "#)#"));
                baseList.add(baseMap);
                sendV5Map.put("BASE",baseList);
                //填充完毕
                //开始调用javaC通信,v5通信成功后
                logger.info("同步查询码为 "+cQueryCde+" 的[请求与返回]报文给核心,开始");
                SaveQueryInfoService(recvOutMap,sendV5Map);
                logger.info("同步查询码为 "+cQueryCde+" 的[请求与返回]报文给核心,结束");
                //v5通信成功后,置通信成功标志
                pltmPacketService.updateSendV5Mrk(pltmPacketVO.getCPkId(),PltmConstants.V5SUCC_MRK);
                logger.info("把   查询码为 "+cQueryCde+" 的与核心通信成功标志修改为1");
            }else{
                return false;
            }
        }
            logger.warn("[生成V5交互报文失败] : "+npE);
            return false;
        }
            logger.warn("[更新日志失败]:"+daoE);
            return false;
        }
            logger.error(e.getMessage());
            logger.error("与核心数据同步失败,可能原因:超时");
            return false;
        }
        return true;
    }

    /*
     * @author
     * @param recvOutMap 用于提取部分Head信息到sendV5Map中云
     * @param sendV5Map 缺少Head信息的map,在设置完Head之后,转成requestBO,用于和V5进行通信
     */
    public static ResponseBusinessObject SaveQueryInfoService(Map<String, List<Map<String, Object>>> recvOutMap ,Map sendV5Map )throws Exception{
        ESBClient esbClient = new ESBClient();
        List list  = new ArrayList();
        Map head = new HashMap();
        head.put("REQUEST_TYPE", "");
        head.put("SYSNAME", "platproxy");
        head.put("SYSCODE", "02");
        head.put("USERCDE", "100009999");
        head.put("DPTCDE", recvOutMap.get("HEAD").get(0).get("DPTCDE"));
        head.put("TYPE", "Q");
        head.put("DATA", "A");
        head.put("SERVICE_NO","0000000000");
        head.put("SERVICENAME","SaveQueryInfo");
        head.put("USERID", "50000009");
        list.add(head);
        sendV5Map.put("HEAD", list);
        //esb设置连接超时
        ESBClient client = new ESBClient(30*1000,30*1000,30*1000);
        RequestBusinessObject requestBO    = null;
        ResponseBusinessObject responseObject = null;
        try {
            requestBO = XmlTool.getFromCoreMap(sendV5Map);
//            String s = XmlTool.convertToXml(requestBO);
            responseObject = client.invoke(requestBO);
            String s = XmlTool.convertToXml(responseObject);
            System.out.println("核心返回信息________________+:\n"+s);
        } catch (Exception e) {
            throw e;
        }
        return responseObject;
    }
    //
}

操作失败,没有该服务权限![ 机构号:99 ,用户ID:50000009 ,服务号:0101030112 ]的更多相关文章

  1. Linux下文件权限(一)用户ID和用户组ID

    最近在读<unix环境高级编程>,看到文件权限这里比较糊涂,主要设计多个用户ID和用户组ID,包括下面两个: (1)实际用户ID和实际用户组ID:这一部分表示我们究竟是谁.这两个字段在登录 ...

  2. win7 提升windows服务权限使非管理员用户可以控制windows服务的开启和关闭

    #include <windows.h>#include <tchar.h>#include <strsafe.h>#include <aclapi.h> ...

  3. 解决在iOS8环境下,当用户关闭定位服务总开关时,无法将APP定位子选项加入定位权限列表的问题

    关键点:- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizati ...

  4. 如何排查sharepoint2010用户配置文件同步服务启动问题

    用户配置文件同步服务与 Microsoft Forefront Identity Manager (FIM) 交互,以与外部系统(如目录服务和业务系统)同步配置文件信息.启用用户配置文件同步服务时,将 ...

  5. UNIX文件的权限之“设置用户ID位”

    用stat函数可以获取一个文件的状态信息,原型是这样的: int stat(const char *path, struct stat *buf); 其中结构体stat的结构: struct stat ...

  6. php 微信登录 公众号 获取用户信息 微信网页授权

    php 微信登录 公众号 获取用户信息 微信网页授权 先自己建立两个文件: index.php  和  getUserInfo.php index.php <?php //scope=snsap ...

  7. 用户id,组id和文件访问权限

    实际用户ID和实际组ID:标示了我们究竟是谁,这两个字段在登录时取自口令文件中的登录项 有效用户ID和有效组ID以及附属组ID:决定了我们的文件的访问权限(通常有效用户ID等于实际用户ID,有效组ID ...

  8. paip.花生壳 服务启动失败 以及不能安装服务,权限失败的解决

    paip.花生壳 服务启动失败 以及不能安装服务,权限失败的解决 系统win7 NewPhDDNS_1.0.0.30166.exe  作者Attilax  艾龙,  EMAIL:1466519819@ ...

  9. (2.2)学习笔记之mysql基础操作(登录及账户权限设置)

    本系列学习笔记主要讲如下几个方面: 本文笔记[三:mysql登录][四:账户权限设置][五:mysql数据库安全配置] 三.mysql登录 常用登录方式如下: 四.账户权限设置 (4.1)查看用户表, ...

随机推荐

  1. 函数lock_rec_get_n_bits

    /*********************************************************************//** Gets the number of bits i ...

  2. 瞎折腾之 Lucene.Net + MVC 搜索功能(上)

    前言 首先,关于Lucene.Net 的文章已经很多了.我这次决定写出来只是为了练练手,虽然在别人看来没什么用,但是自己确实是手动实践了一把.我个人觉得还是有意义的.爱折腾.敢于实践.才能有所收获,才 ...

  3. openerp学习笔记 context 的应用

    1.在Action中定义,context用于传递搜索条件和分组条件,在搜索视图中默认显示: 示例代码: <record model="ir.actions.act_window&quo ...

  4. OCJP考试介绍

    OCJP考试介绍 考试名称:SCJP / OCJP / 1Z0-851 考试时间:150分钟 考题题目:60道题 通过条件:大于等于61%的题目正确 考点查询:http://www.pearsonvu ...

  5. django - raw sql - 注意点!

    现在的自己已经不怕mysql,已经熟悉了sql “搜索优化专家有时候都无法顾全所有,更何况ORM” 两种方法执行 sql原生语句 tablename.objects.raw() - 这样的语句,只能执 ...

  6. Mac Maven java_home错误

    当maven装好之后出现 $ mvn -versionError: JAVA_HOME is not defined correctly. We cannot execute /usr/libexec ...

  7. 【英语】Bingo口语笔记(14) - 表示“不愉快”

    bail on 放弃;背弃

  8. ORACLE CONTROL FILE 笔记

    控制文件包含的信息:   1.数据库的名字   2.联机重做日志文件和数据文件的名字和位置   3.数据库创建的时间戳   4.当前日志的序列号   5.检查点信息   6.备份信息   TIP:数据 ...

  9. 实现LoaderCallbacks接口动态循环加载网上图片并展示在手机屏幕上 ...

    1.布局xml文件 activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/re ...

  10. JSTL获取list的大小,jstl获取list 的长度,EL表达式获取list的长度,EL表达式获取list大小

    在jsp页面中不能通过${list.size}取列表长度,而是 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" pref ...