功能要求:需要在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. Windows 隐藏 远程桌面(连接栏)

    当我们在使用远程桌面控制的时候,远程桌面工具栏遮挡视线很烦人.这时候就很有必要隐藏了! 1.全屏时显示连接栏 勾选去掉 这样子远程桌面上方的连接栏就消失了. 那么我们怎么打开呢?所以就要写下来记住了. ...

  2. Python elasticsearch_dsl 报错及解决方法

    Exception:maxClauseCount is set to 1024 原因:报错原因是Search限制一个bool查询中最多只能有1024个值或子查询,当超过1024时,会抛出异常. 解决办 ...

  3. 这里记录一下我个人对AXI4主从模块的理解(这些理解主要来自阅读 Xilinx AXI_FULL_M_module 源码)

    先只考虑读请求: 以取指模块和内存模块为例,取指模块是发出请求的模块,因此为 Master,属于AXI4MasterModule:内存模块是响应请求的模块,因此为 Slave,属于AXI4SlaveM ...

  4. 网络储存服务ip-san搭建

    简单的介绍一下SAN(存储区域网络存储区域网络和SAN协议,简称SAN),它是一种高速网络实现计算机与存储系统之间的数据传输.常见的分类是FC-SAN和IP-SAN两种.FC-SAN通过光纤通道协议转 ...

  5. 0627.selenium请求库*1

    今日内容: 一 Selenium请求库 一 Selenium请求库 1.什么是selenium? selenium是一个自动测试工具,它可以帮我通过代码 去实现驱动浏览器自动执行相应的操作. 所以我们 ...

  6. Windows环境同时安装多个版本的Python解释器(python2和python3)

    https://blog.csdn.net/qq_21583139/article/details/125881382 出现问题: 更新pip 操作后出现,pip报错,应该是升级到最新pip版本然后和 ...

  7. centos7端口转发工具rinetd

    1.下载软件 wget http://li.nux.ro/download/nux/misc/el7/x86_64/rinetd-0.62-9.el7.nux.x86_64.rpm 2.安装软件 yu ...

  8. CodeGym自学笔记12——类名

    类的全名 类的全名由所有包的名称(由句点分隔)和类名组成. "要在代码中使用类,你需要指出类的全名.你也可以使用类的短名称,即只使用类名,但你需要'导入类'.这意味着在声明类之前,你要指出单 ...

  9. HTML中添加点击链接 进行Skype对话的问题

    格式 :XXX 代表Skype账号: 开始 Skype 文字聊天 <a href="skype:XXX?chat">开始 Skype 文字聊天</a> 查看 ...

  10. jekins+svn

    1.jekins安装可以看jekins+shell随笔. 2.安装svn. yum -y install subversion 3.配置相关文件 mkdir   家目录 cd 到家目录修改conf下三 ...