功能要求:需要在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使用的更多相关文章

  1. Kettle自定义jar包供javascript使用

    我们都知道 Kettle 是用 Java 语言开发,并且可以在 JavaScript 里面直接调用 java 类方法.所以有些时候,我们可以自定义一些方法,来供 JavaScript 使用. 本篇文章 ...

  2. Jmeter调用自定义jar包

    一. 场景 在测试过程中, 可能需要调用第三方jar包来生成测试数据或者使用java工具类来实现业务场景, 普遍的做法是手动调用jar包, 再把这些值赋给jmeter中的某个参数, 以满足业务测试需求 ...

  3. 【转载】JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案

    JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案 本文为转载,原文地址为:https://www.cnblogs.com/adversary/p/103 ...

  4. 利用Maven把项目生成jar包供其他项目使用

    每当搭建框架时,第一步就是为系统整理一个接一个的jar包.用多了就开始深思,如何把自己的项目也整成jar包,供他人使用呢? 近期一直在看徐晓斌所著:<Maven实战>.因自己学识不够,只是 ...

  5. PySpark调用自定义jar包

    在开发PySpark程序时通常会需要用到Java的对象,而PySpark本身也是建立在Java API之上,通过Py4j来创建JavaSparkContext. 这里有几点是需要注意的 1. Py4j ...

  6. 【Maven jar】打包单个或多个文件,有依赖jar包的将架包一起打包成一个jar包供别的项目引用

    之前有一片文章,是打包单个java文件的.这次想要将http://www.cnblogs.com/sxdcgaq8080/p/8398780.html  打包成jar包,发现这个java文件中引用了多 ...

  7. 【Maven】如何使用pom.xml引入自定义jar包

    这里我以这个jar包为例,aliyun-java-sdk-core-3.2.3.jar ,这是我在做手机短信服务用到的jar包 ①进入C盘下的maven仓库C:\Users\用户\.m2\reposi ...

  8. 服务器程序动态加载自定义jar包的过程

    需求: 用过hive的都知道,可以自定义hive的一个udf jar,然后将这个jar add到hive服务端,就会加载这个jar实现用户自定义逻辑.现在的需求就是实现这么一个服务端所做的事情! 场景 ...

  9. maven增加自定义jar包

    1.博客来源: http://www.cnblogs.com/leiOOlei/p/3356834.html 导入平台SDK的方法 mvn install:install-file -DgroupId ...

  10. Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)

    转载地址:http://blog.csdn.net/xiaanming/article/details/9257853 最近有一个需要,我们公司做了一个apk客户端,然后其他的公司可以根据自己的需要来 ...

随机推荐

  1. Linux命令执行时,提示commond not found的处理办法

    执行chattr命令时,或其他命令时,若出现命令没发现,commond not found 那么就是有可能命令文件丢了,执行find / -name chattr,如果没有命令了,可以拷贝一个或yum ...

  2. element-ui的collapse中嵌套table表格 的 高度跳跃 问题

    <script src="//unpkg.com/vue@2.6.10/dist/vue.js"></script><script src=" ...

  3. File类-绝对路径 相对路径

    绝对路径:通过给定的路径能够直接在我的电脑中找到的文件 相对路径:文件相对于应用程序的路径 结论: 我们在开发中要尽量使用相对路径 File方法只能读取小文件,是一下子全读出来.如果读大文件则使用文件 ...

  4. MessageUtil

    1 public abstract class MessageUtil { 2 3 public static String changeMsg(CustomerReportQueryObject q ...

  5. NSIS 制作漂亮的安装界面(仿QQ音乐,网易云音乐)

    废话少说,先上图: 注:下面的录制的安装过程使用的安装包,均为制作的安装包,而非官方源包. QQ音乐的安装过程: ​

  6. 【剑指Offer】【树】【双向链表】二叉搜索树与双向链表

    题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. A:二叉树中每个节点都有一个left指针指向左节点,一个right指针指向右节 ...

  7. TensorFlow中的Placeholder

    简单运用 这一次我们会讲到 Tensorflow 中的 placeholder , placeholder 是 Tensorflow 中的占位符,暂时储存变量. Tensorflow 如果想要从外部传 ...

  8. 寒假acm训练第三周

    这个题就是简单的数学思维 如果这个数组里全部都是10的倍数那直接计数达到n就直接出0 如果有其它不是10的倍数那找出最小的直接减去就可以了 下面就是代码 #include<iostream> ...

  9. go 下的查询数据库的框架 ORM框架:访问mysql数据库

    运维的基友 习惯使用python了,学习go的时候是不是被gorm 恶心死了 例如python flask 框架下的orm那么好用简单 ,或者号称 世界上最好用的语言php的同学们也是非常的苦恼呢 很 ...

  10. SpecCPU2017 测试cpu性能

    SpecCPU介绍见: https://blog.csdn.net/qq_36287943/article/details/103601539 官网:https://spec.org/ 1.SpecC ...