自定义jar包供ERP使用
功能要求:需要在ERP中调用其他web服务或者自身web服务(比如跨账套过账等)
1.编写java程序,并将程序打包成jar包
import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils; public class KbdErpHttpClient {
public static String doPost(String soapXML){
//创建HttpClientBuilder
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
//创建HTTPClient
CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
//创建HTTPPOST
HttpPost httpPost = new HttpPost("http://xxx.xxx.xxx.xxx/web/ws/r/aws_ttsrv2");
//设置超时时间
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(1000*30).setConnectTimeout(1000*30).build();
httpPost.setConfig(requestConfig);
//System.out.println("配置完成");
//创建返回响应体
String resp = null;
try{
//配置post请求头
httpPost.setHeader("Content-Type","text/xml;charset=UTF-8");
httpPost.setHeader("SOAPAction","\"\"");
httpPost.setHeader("Connection","keep-alive");
httpPost.setHeader("Accept-Encoding","gzip,deflate");
//配置post请求体
StringEntity data = new StringEntity(soapXML,"UTF-8");
data.setContentType("application/xml");
httpPost.setEntity(data);
//发送请求
CloseableHttpResponse response = closeableHttpClient.execute(httpPost);
//获取响应体
HttpEntity httpEntity = response.getEntity();
//System.out.println(response.getStatusLine().getStatusCode());
if(httpEntity != null){
resp = EntityUtils.toString(httpEntity,"UTF-8");
}
closeableHttpClient.close();
}catch (Exception e){
System.out.println(e.toString());
}
return resp;
}
}
打包jar

上传JAR到服务器,并将jar包添加至classpath中

2.在程序中引用上一部的jar包,并调用相关类的静态方法
FUNCTION i001_http_test()
DEFINE l_str STRING
DEFINE l_xml_str STRING
LET l_xml_str = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" ",
"xmlns:tip=\"http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay\">\n",
" <soapenv:Header/>\n",
" <soapenv:Body>\n",
" <tip:OperaNorPostRequest>\n",
" <tip:request><![CDATA[<Request>\n",
" <Access>\n",
" <Authentication user='tiptop' password=''/>\n",
" <Organization name='WCTZ'/>\n",
" </Access>\n",
" <RequestContent>\n",
" <Parameter>\n",
" <Record>\n",
" <Field name='type' value='DB'/>\n",
" <Field name='rec' value='K141-221207001'/>\n",
" </Record>\n",
" </Parameter>\n",
" </RequestContent>\n",
"</Request>]]></tip:request>\n",
" </tip:OperaNorPostRequest>\n",
" </soapenv:Body>\n",
"</soapenv:Envelope>"
LET l_str = KbdErpHttpClient.doPost(l_xml_str)
DISPLAY l_str
{DEFINE req com.HTTPRequest
IF resp.getStatusCode() != 200 THEN
DISPLAY "HTTP Error ("||resp.getStatusCode()||") ",resp.getStatusDescription()
ELSE
DISPLAY "HTTP Response is : ",resp.getTextResponse()
END IF
CATCH
DISPLAY "ERROR :",STATUS||" ("||SQLCA.SQLERRM||")"
END TRY}
END FUNCTION
自定义jar包供ERP使用的更多相关文章
- Kettle自定义jar包供javascript使用
我们都知道 Kettle 是用 Java 语言开发,并且可以在 JavaScript 里面直接调用 java 类方法.所以有些时候,我们可以自定义一些方法,来供 JavaScript 使用. 本篇文章 ...
- Jmeter调用自定义jar包
一. 场景 在测试过程中, 可能需要调用第三方jar包来生成测试数据或者使用java工具类来实现业务场景, 普遍的做法是手动调用jar包, 再把这些值赋给jmeter中的某个参数, 以满足业务测试需求 ...
- 【转载】JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案
JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案 本文为转载,原文地址为:https://www.cnblogs.com/adversary/p/103 ...
- 利用Maven把项目生成jar包供其他项目使用
每当搭建框架时,第一步就是为系统整理一个接一个的jar包.用多了就开始深思,如何把自己的项目也整成jar包,供他人使用呢? 近期一直在看徐晓斌所著:<Maven实战>.因自己学识不够,只是 ...
- PySpark调用自定义jar包
在开发PySpark程序时通常会需要用到Java的对象,而PySpark本身也是建立在Java API之上,通过Py4j来创建JavaSparkContext. 这里有几点是需要注意的 1. Py4j ...
- 【Maven jar】打包单个或多个文件,有依赖jar包的将架包一起打包成一个jar包供别的项目引用
之前有一片文章,是打包单个java文件的.这次想要将http://www.cnblogs.com/sxdcgaq8080/p/8398780.html 打包成jar包,发现这个java文件中引用了多 ...
- 【Maven】如何使用pom.xml引入自定义jar包
这里我以这个jar包为例,aliyun-java-sdk-core-3.2.3.jar ,这是我在做手机短信服务用到的jar包 ①进入C盘下的maven仓库C:\Users\用户\.m2\reposi ...
- 服务器程序动态加载自定义jar包的过程
需求: 用过hive的都知道,可以自定义hive的一个udf jar,然后将这个jar add到hive服务端,就会加载这个jar实现用户自定义逻辑.现在的需求就是实现这么一个服务端所做的事情! 场景 ...
- maven增加自定义jar包
1.博客来源: http://www.cnblogs.com/leiOOlei/p/3356834.html 导入平台SDK的方法 mvn install:install-file -DgroupId ...
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
转载地址:http://blog.csdn.net/xiaanming/article/details/9257853 最近有一个需要,我们公司做了一个apk客户端,然后其他的公司可以根据自己的需要来 ...
随机推荐
- QP之QEP事件分配流程分析
*********************************1*********************************** QActive *AO_Blinky = &l_bl ...
- pictrue类的练习
这里遇到一个问题,因为导入的文件格式很大,所以内存占用特别高,就会在运行一段时间过后报错:内存不够 然后用了一个GC.collect():的方法,加在了timer控件里,让程序每隔1000ms换图时也 ...
- 时间序列分析 2.X 单位根检验
单位根检验 (基于模型检验序列是否平稳) 趋势平稳序列 \(X_{t}=\beta_{0}+\beta_{1} t+Y_{t}\) \(Y_t\) 为平稳序列, 则称 \(X_t\) 为趋势平稳序列 ...
- Golang依赖管理工具: go module 详解
Golang依赖管理工具: go module (go1.11+) 大多数语言都会有包管理工具,像Node有npm,PHP有composer,Java有Maven和Gradle. 可是,Go语言一直缺 ...
- vue vite 打包开启 gzip 部署 nginx 支持 gzip
vite 打包开启 gzip 安装插件 npm i vite-plugin-compression --save-dev vite.config.js 配置 import { defineConfig ...
- 面试不愁,给你一份SpringBoot常用注解
一.注解(annotations)列表 @SpringBootApplication: 包含了@ComponentScan.@Configuration和@EnableAutoConfiguratio ...
- docker、Containerd ctr、crictl 区别
简述 作为接替 Docker 运行时的 Containerd 在早在 Kubernetes1.7 时就能直接与 Kubelet 集成使用,只是大部分时候我们因熟悉 Docker,在部署集群时采用了默认 ...
- 微服务笔记之Euraka(2)
Eureka Server启动过程 入口:SpringCloud充分利用了SpringBoot的自动装配的特点 Eureka-server的jar包,发现在MERA-INF下面有配置文件spring. ...
- 插入排序C语言
1 #include "stdio.h" 2 #include "stdlib.h" 3 typedef int ElemType; 4 //直接插入排序 5 ...
- 小白之Python-基础中的基础04
继续.. ------------------------华丽的分界线----------------------------- Python-基础中的基础04 --之方法 格式:对象.方法() 1. ...