精华内容
下载资源
问答
  • java系统调用esb接口,json形式,rest接口分析访客阅读:5222020-07-05 13:01:51评论:0package com.ekingwin.bas.cloud.mobileErp.utils;import java.util.HashMap;import java.util.Map;import org.spring...

    java跨系统调用esb接口,json形式,rest接口分析

    访客

    阅读:522

    2020-07-05 13:01:51

    评论:0

    package com.ekingwin.bas.cloud.mobileErp.utils;

    import java.util.HashMap;

    import java.util.Map;

    import org.springframework.http.HttpEntity;

    import org.springframework.http.HttpHeaders;

    import org.springframework.http.HttpMethod;

    import org.springframework.http.MediaType;

    import org.springframework.http.ResponseEntity;

    import org.springframework.web.client.RestTemplate;

    import com.alibaba.fastjson.JSON;

    import com.alibaba.fastjson.JSONObject;

    /**

    * 向esb发送post请求工具类

    * @author yang

    *

    */

    public class HttpRestUtil {

    public static JSONObject  sendPost(Map map1,Map map2,String url) {

    //设置头信息

    HttpHeaders headers = new HttpHeaders();

    headers.setContentType(MediaType.APPLICATION_JSON);

    headers.set("Content-Type", "application/json;charset=UTF-8");

    headers.set("Accept", "application/json");

    //封装请求参数

    Map map=new HashMap();

    map.put("commonHeader", map1);

    map.put("LIST", map2);

    String mapJsonStr = JSON.toJSONString(map,true);

    JSONObject mapJson =  JSONObject.parseObject((String) JSON.toJSON(mapJsonStr));

    System.out.println("请求报文--------->>>>>>"+mapJson.toString());

    //发送请求

    HttpEntity> he = new HttpEntity>(map, headers);

    RestTemplate restTemplate = new RestTemplate();

    JSONObject responseJson=new JSONObject();

    try {

    ResponseEntity result = restTemplate.exchange(url,

    HttpMethod.POST, he, JSONObject.class);

    JSONObject body = result.getBody();

    Object object = body.get("LIST");

    JSONObject jsonObject=(JSONObject)JSON.toJSON(object);

    responseJson= (JSONObject)JSON.toJSON(jsonObject.get("o"));

    /*if(url.contains("Pipeline/querySaleTotalBySaler_PS")) {

    responseJson= (JSONObject)JSON.toJSON(jsonObject.get("o"));

    }else {

    responseJson= (JSONObject)JSON.toJSON(jsonObject.get("DATA"));

    }*/

    System.out.println("响应报文***********************" + body.toString());

    String code =responseJson.getString("code");

    if ("1".equals(code)) {

    System.out.println("接口调用成功" + responseJson.toString());

    } else {

    System.out.println("数据操作异常" + result.toString());

    }

    } catch (Exception e) {

    e.printStackTrace();

    System.out.println("接口调用失败"+e);

    }

    return responseJson;

    }

    /**

    * CONSUMER这个参数还没有赋值

    * @param BIZTRANSACTIONID 接口系统唯一标识

    * @return

    */

    public static Map setCommonHeaderMap(String BIZTRANSACTIONID) {

    Map map =new HashMap();

    map.put("BIZTRANSACTIONID", BIZTRANSACTIONID);

    map.put("COUNT", "1");

    map.put("SRVLEVEL", "");

    map.put("ACCOUNT", "");

    map.put("PASSWORD", "");

    map.put("CONSUMER", "");

    return map;

    }

    }

    声明

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    发表评论

    3140a434ad697de8d9ea8f0d7a2183fb.png

    提交评论

    展开全文
  • java在企业级项目开发中,无论是强制性的功能需要,还是为了简便java的实现,需要调用服务器命令脚本来执行。在java中,RunTime.getRuntime().exec()就实现了这个功能。 用法: public Process exec(String ...

    java在企业级项目开发中,无论是强制性的功能需要,还是为了简便java的实现,需要调用服务器命令脚本来执行。在java中,RunTime.getRuntime() .exec() 就实现了这个功能。

     用法:  

    public Process exec(String command)//在单独的进程中执行指定的字符串命令。
     
    public Process exec(String [] cmdArray)//在单独的进程中执行指定命令和变量
     
    public Process exec(String command, String [] envp)//在指定环境的独立进程中执行指定命令和变量
     
    public Process exec(String [] cmdArray, String [] envp)//在指定环境的独立进程中执行指定的命令和变量
     
    

     Linux下:

    String[] envp = { "LANG=UTF-8" };
    String[] comands = new String[] { "/bin/sh", "-c", args};
    Process process = Runtime.getRuntime().exec(comands, envp);

    Windows下:

    String[] envp = { "LANG=UTF-8" };
    String[] comands = new String[] { "cmd", "/c", args};
    Process process = Runtime.getRuntime().exec(comands, envp);

    进阶:

    Process的几种方法:

     destroy():杀掉子进程
    
    exitValue():返回子进程的出口值,值 0 表示正常终止
    
    getErrorStream():获取子进程的错误流
    
    getInputStream():获取子进程的输入流
    
    getOutputStream():获取子进程的输出流
    
    waitFor():导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程终止。如果子进程结束,此方法立即返回。如果该子进程没结束,调用的线程将被阻塞,直到子进程退出,

    笔者在用mysql和mysqldump指令进行智能和服时,遇到主键冲突没法正常返回,后来发现是因为没有读取错误流导致。

    根据惯例,0 表示正常终止(即使比如mysql指令的主键冲突,只要是指令的返回也算是正常终止),

     注意:在java中,调用runtime线程执行脚本是非常消耗资源的,所以切忌不要频繁使用!        

     在调用runtime去执行脚本的时候,其实就是JVM开了一个子线程去调用JVM所在系统的命令,其中开了三个通道: 输入流、输出流、错误流,其中输出流就是子线程走调用的通道。

      process的阻塞:

     在runtime执行大点的命令中,输入流和错误流会不断有流进入存储在JVM的缓冲区中,如果缓冲区的流不被读取被填满时,就会造成runtime的阻塞。所以在进行比如:大文件复制等的操作时,我们还需要不断的去读取JVM中的缓冲区的流,来防止Runtime的死锁阻塞。

     

    最后附上在linux 上封装的方法供参考:

    	/**
    	 * @param daemon true,后台执行,false,直接执行
    	 * @param args 指令行
    	 */
    	public static Result sendCommand(boolean daemon,String args) {
    		logger.info("args={}", args);
    		StringBuilder builder = new StringBuilder();
    	//	InputStreamReader ir = null;
    	//	LineNumberReader input = null;
    		try {
    			String[] envp = { "LANG=UTF-8" };
    			Process process=null;
    			if(daemon) {
    				String[] comands = new String[] { "/bin/sh", "-c", args};
    				process = Runtime.getRuntime().exec(comands, envp);
    				process.waitFor();
    			}else {
    				process = Runtime.getRuntime().exec(args, envp);
    				process.waitFor(60,TimeUnit.SECONDS);
    			}
    			try (InputStreamReader ir =  new InputStreamReader(process.getInputStream(), Charset.forName("UTF-8"));LineNumberReader input = new LineNumberReader(ir)) {
    				String tmp = "";
    				while ((tmp = input.readLine()) != null) {
    					builder.append(tmp).append("\n");
    				}
    				
    			}catch (Exception e) {
    				logger.error(e.getMessage(), e);
    				return new Result(ErrorCode.EC_FAILED, e.getMessage());
    			}
    			
    			try (InputStreamReader ir =  new InputStreamReader(process.getErrorStream(), Charset.forName("UTF-8"));LineNumberReader input = new LineNumberReader(ir)) {
    				String tmp = "";
    				while ((tmp = input.readLine()) != null) {
    					builder.append(tmp).append("\n");
    				}
    			}catch (Exception e) {
    				logger.error(e.getMessage(), e);
    				return new Result(ErrorCode.EC_FAILED, e.getMessage());
    			}
    		} catch (Exception e) {
    			logger.error(e.getMessage(), e);
    			return new Result(ErrorCode.EC_FAILED, e.getMessage());
    		}
    		String result = builder.toString();
    		if (StringUtils.isNotEmpty(result)&&StringUtils.containsIgnoreCase(result, "ERROR")) {
    			logger.info("result={}", result);
    			return new Result(ErrorCode.EC_FAILED, result);
    		} else {
    			return new Result(ErrorCode.EC_OK);
    		}
    	}

     

    展开全文
  • package ...import java.util.HashMap;import java.util.Map;import org.springframework.http.HttpEntity;import org.springframework.http.HttpHeaders;import org.springfra...

    package com.ekingwin.bas.cloud.mobileErp.utils;

    import java.util.HashMap;

    import java.util.Map;

    import org.springframework.http.HttpEntity;

    import org.springframework.http.HttpHeaders;

    import org.springframework.http.HttpMethod;

    import org.springframework.http.MediaType;

    import org.springframework.http.ResponseEntity;

    import org.springframework.web.client.RestTemplate;

    import com.alibaba.fastjson.JSON;

    import com.alibaba.fastjson.JSONObject;

    /**

    * 向esb发送post请求工具类

    * @author yang

    *

    */

    public class HttpRestUtil {

    public static JSONObject  sendPost(Map map1,Map map2,String url) {

    //设置头信息

    HttpHeaders headers = new HttpHeaders();

    headers.setContentType(MediaType.APPLICATION_JSON);

    headers.set("Content-Type", "application/json;charset=UTF-8");

    headers.set("Accept", "application/json");

    //封装请求参数

    Map map=new HashMap();

    map.put("commonHeader", map1);

    map.put("LIST", map2);

    String mapJsonStr = JSON.toJSONString(map,true);

    JSONObject mapJson =  JSONObject.parseObject((String) JSON.toJSON(mapJsonStr));

    System.out.println("请求报文--------->>>>>>"+mapJson.toString());

    //发送请求

    HttpEntity> he = new HttpEntity>(map, headers);

    RestTemplate restTemplate = new RestTemplate();

    JSONObject responseJson=new JSONObject();

    try {

    ResponseEntity result = restTemplate.exchange(url,

    HttpMethod.POST, he, JSONObject.class);

    JSONObject body = result.getBody();

    Object object = body.get("LIST");

    JSONObject jsonObject=(JSONObject)JSON.toJSON(object);

    responseJson= (JSONObject)JSON.toJSON(jsonObject.get("o"));

    /*if(url.contains("Pipeline/querySaleTotalBySaler_PS")) {

    responseJson= (JSONObject)JSON.toJSON(jsonObject.get("o"));

    }else {

    responseJson= (JSONObject)JSON.toJSON(jsonObject.get("DATA"));

    }*/

    System.out.println("响应报文***********************" + body.toString());

    String code =responseJson.getString("code");

    if ("1".equals(code)) {

    System.out.println("接口调用成功" + responseJson.toString());

    } else {

    System.out.println("数据操作异常" + result.toString());

    }

    } catch (Exception e) {

    e.printStackTrace();

    System.out.println("接口调用失败"+e);

    }

    return responseJson;

    }

    /**

    * CONSUMER这个参数还没有赋值

    * @param BIZTRANSACTIONID 接口系统唯一标识

    * @return

    */

    public static Map setCommonHeaderMap(String BIZTRANSACTIONID) {

    Map map =new HashMap();

    map.put("BIZTRANSACTIONID", BIZTRANSACTIONID);

    map.put("COUNT", "1");

    map.put("SRVLEVEL", "");

    map.put("ACCOUNT", "");

    map.put("PASSWORD", "");

    map.put("CONSUMER", "");

    return map;

    }

    }

    分享到:

    展开全文
  • Java调用Tuxedo服务

    千次阅读 2016-11-03 10:49:23
    Java调用Tuxedo服务,有三种方式: 1.JNI 发布Tuxedo服务无需做额外限制,无需借助于任何J2EE容器。会影响系统移植和带来性能问题。 2.WTC Weglogic为Tuxedo定制,存在一套和Tuxedo API相对应的Java API,发布...

    Java调用Tuxedo服务,有三种方式:

    1.JNI

    发布Tuxedo服务无需做额外限制,无需借助于任何J2EE容器。会影响系统移植和带来性能问题。

    2.WTC

    Weglogic为Tuxedo定制,存在一套和Tuxedo API相对应的Java API,发布Tuxedo服务无需做额外限制,双向调用。需要购买License,依赖于Weblogic容器,不能移植到其它J2EE容器。

    3.Jolt

    可用于但不依赖于J2EE容器,提供的API用WTC类似但不同。需要购买License,发布Tuxed服务有些额外的要求,不提供集成的Weblogic-server-tuxedo事务机制。

     

    最后欢迎大家访问我的个人网站:1024s

    展开全文
  • /**java调用windows本地命令*/ public class DosOperation { public static void main(String[] args) { InputStream is=null; BufferedInputStream bis=null; Process process=null; /**命令参数*/ ...
  • (cmd中生效但java中调用没有生效,这是我遇到的情况)java调用mysql备份命令用到:1,隐形调用cmd;2,调用第三方可执行程序;cmd参数的说明:(详细参考地址:http://blog.csdn.net/xys_777/art...
  • NULL 博文链接:https://skyandcity.iteye.com/blog/1547028
  • 首先添加mysql的bin到环境变量,这样可以简写部分命令,并且做到不依赖系统...java调用mysql备份命令用到:1,隐形调用cmd;2,调用第三方可执行程序; cmd参数的说明:(详细参考地址:http://blog.csdn.net/xys_7...
  • 》》》推荐阅读《《《1、性能测试学习笔记-场景设计2、性能测试的重要意义3、性能分析流程及方法4、应用系统性能调优之性能分析目前java调用tuxedo服务只有通过jolt而且必须使用weblogic,大家因此比较郁闷。...
  • WCF是微软提供的数据通讯框架,比较好用,可以使用webservice,也可以使用TCP/IP通讯,当前大部分的分布式系统基本都采用webservice,还是一个实战的项目,网络矿工数据采集服务引擎采用的就是wcf,对外提供任务操作...
  • R是统计计算的强大工具,JAVA是做应用系统的主流语言。JAVA负责系统的构建,R用来做运算引擎,从而实现应用型和分析性相结合的系统。一、Rserve(远程通信模式)Rserve是一个基于TCP/IP的服务器,通过二进制协议传输...
  • R是统计计算的强大工具,JAVA是做应用系统的主流语言。JAVA负责系统的构建,R用来做运算引擎,从而实现应用型和分析性相结合的系统。一、Rserve(远程通信模式)Rserve是一个基于TCP/IP的服务器,通过二进制协议传输...
  • Java调用R

    2019-10-09 02:47:10
    Java和R语言各有侧重,Java作为主流开发语言,擅长系统开发,R语言则擅长统计分析,将二者整合,Java负责系统的构建,R用来做分析引擎,从而实现具有分析功能的应用系统。 在Java代码中调用R,可以通过两种方式:...
  • 》》》推荐阅读《《《1、性能测试学习笔记-场景设计2、性能测试的重要意义3、性能分析流程及方法4、应用系统性能调优之性能分析目前java调用tuxedo服务只有通过jolt而且必须使用weblogic,大家因此比较郁闷。...
  • 公司做大后,用到的系统就会越来越多,来个新员工,需要在HR系统...后来公司引入总线系统,来个新员工只需要在HR系统添加账号,HR系统把员工信息下发到总线系统,总线系统再下发到其他各个系统,这样能保证数据的一...
  • java中使用HttpClient实现服务端跨域HttpClient调用其他系统服务   一、 准备jar包 1、httpclient-4.5.3.jar 2、httpcore-4.4.8.jar 3、commons-logging-1.0.4.jar     二、HttpClient 执行 get 请求 ...
  • 伪分布式hbase服务搭建,系统操作都很正常,也可以查询所有的表的列表,但是查询表的详情,调用的时候就会报错java.net.connectexception: call to localhost/127.0.0.1:16020 failed on connection exception从报错...
  • java实现远程服务调用

    2018-12-22 14:11:52
    主要使用HttpClient进行多系统数据交互的demo,使用文档和jar
  • Java http请求调用服务

    千次阅读 2017-11-01 14:44:32
    最近一直在做算法模型等等,好久不碰系统开发这套东西,顶多自己做个ETL写个spark,正巧自己准备数据的过程中需要调用服务获得一批数据,难得的非常有趣,代码极其基础简单,记录下来也不错import org.codehaus....
  • 一种是偏重服务治理,另一种侧重跨语言调用2.1 服务治理型特点功能丰富,提供高性能的远程调用服务发现及服务治理能力,适用于大型服务服务解耦及服务治理,对于特定语言(Java)的项目可以实现透明化接入。...
  • 问题描述工作中遇到这样一个问题,我们的应用为了实现高可用会采取双机部署,拓扑图大致如下:这种方案可以简单的保证高可用,即便应用服务器或者数据库服务器其中一台宕机,整个系统的功能还是不会受到影响,但是这里会...
  • 存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在...java调用oracle的存储过程项目结构如下:一、 在数据库创建存储过程的脚本,如果使用的是本地的oracle数据库,则需要开启服务:Orac...
  • 最近因为系统需要,需要采用 http 调用对方的服务器接口,GET,POST 都有,记录一下GET 请求:/*** 功能描述: get 请求* @param: [url]* @return: JSONObject* @auther: lsr* @date: 2018/11/14 16:59*/public ...
  • 关于Android 添加系统级(java)服务调用的编写实现说明: 本文当主要描述Android添加java 系统服务的编写实现。 一.添加java 系统服务: 目前网站上介绍的比较多,但是没有很详细的步骤和流程。现总结如下...
  • 5.回复邮件回复邮件的方法很简单:使用Message类的reply()方法,通过配置回复邮件的收件人地址和主题(如果没有提供主题的话,系统将默认将“Re:”作为邮件的主体),这里不需要设置任何的邮件内容,只要复制发信人...
  • FTP是File Transfer Protocol的简称,又被称为文件传输协议,是一种将数据上传和下载到Internet的方式。FTP是一套公认的且简单的协议,是传输单个...IIS7服务器管理工具适用于Windows操作系统和liunx操作系统;支...
  • 关于Android 添加系统级(java)服务调用的编写实现说明:本文当主要描述Android添加java 系统服务的编写实现。一.添加java 系统服务: 目前网站上介绍的比较多,但是没有很详细的步骤和流程。现总结如下:以 Al
  • Java调用oracle存储过程

    2020-12-22 18:22:50
    存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,740
精华内容 1,496
关键字:

java调用系统服务

java 订阅