自定义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客户端,然后其他的公司可以根据自己的需要来 ...
随机推荐
- vue打印图片
element 中图片打印 [vue element 如何打印弹窗里的内容 无效](https://segmentfault.com/q/1010000015097252) vue element 如 ...
- 2.4 在DispatcherServlet的service方法中,通过ServletPath获取对应的Controller对象
@Override protected void service(HttpServletRequest request, HttpServletResponse response) throws Se ...
- LP1-5:常见BUG
一般常见的错误放在通用的代码里.错误判断就是if/else,太多影响性能,接口只需要加入必要的判断就好.
- CSS控制背景图片100%自适应填充布局
原文地址:http://blog.csdn.net/wd4java/article/details/50537562 .personal_head { width: 100%; height: 35% ...
- 开启MySQL数据库远程连接
为了使其余用户/计算机能访问SQL数据库,需对SQL Server进行以下配置.有以下两种方法: 方法一:bat命令修改. 新建.txt文件,添加以下内容,保存后再修改为.bat,双击.bat文件. ...
- Java-Java调用mysqldump进行数据库备份
1 public ResultData backupDatabase(Integer type) { 2 // 构建备份sql的文件名 3 String sqlFileName = "tes ...
- containerd容器存储探究
ContainerD 容器目录结构探究 启动容器 作为开始,我们需要去启动一个容器. 你可以通过命令行的方式来启动一个容器,例如: ctr i pull docker.io/library/nginx ...
- Javascript中求Date类型的差值、增加/减少秒/分钟/小时/天等
最近需要对时间进行加减操作,以往需要取出具体时间后再加减,还需考虑进位问题很是麻烦 转载请注明出处: http://www.cnblogs.com/zaiyuzhong/p/date-operator ...
- htmlApk:一个轻松在线打包生成双端app应用的网站
htmlApk平台,基于HTML打包制作APP,只要有手机网站或者HTML文件,3分钟即可生成app多端应用,同时拥有苹果版和安卓版双系统APP,快速进入移动互联时代. 全面支持h5网址打包,可设置图 ...
- REPLACE,TRANSLATE
REPLACE 1.语法 replace(string,from_str,to_str) 2.说明: 针对string,将from_str中的字符替换为to_str中字符. 3.示例: /**说明:( ...