代码更新

This commit is contained in:
ludj
2023-03-17 16:46:15 +08:00
parent ba8baee6bb
commit 801162e0e4
9 changed files with 230 additions and 1269 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,191 @@
package org.nl.wms;
import com.alibaba.fastjson.JSONObject;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* 后端调用第三方webservice接口
* @author zds 2018-12-27 16:33:50
*
*/
public class WebServiceUtil {
/**
*
* @param url 第三方系统提供webservice的接口url
* @param method 第三方系统提供webservice对应的方法名
* @param form 第三方系统提供webservice对应的方法请求参数
* @return 第三方系统返回的JSONObject调用结果
* @throws Exception 工具类一般不处理具体异常,抛出由调用方处理,否则容易形成黑箱
*/
public static String process(String url, String method, HashMap<String,String> form) throws Exception{
//构建返回值
JSONObject result = new JSONObject();
//第一步:创建服务地址
URL netUrl = new URL(url);
//第二步:打开一个通向服务地址的连接
HttpURLConnection connection = (HttpURLConnection) netUrl.openConnection();
//第三步:设置参数
connection.setRequestMethod("POST");
//设置超时时间
connection.setConnectTimeout(50000);
//3.2设置数据格式content-type
connection.setRequestProperty("content-type", "text/xml;charset=utf-8");
//3.3设置输入输出因为默认新创建的connection没有读写权限
connection.setDoInput(true);
connection.setDoOutput(true);
//第四步组织SOAP数据发送请求
String soapXML = getXML(form,method);
//将信息以流的方式发送出去
OutputStream os = connection.getOutputStream();
os.write(soapXML.getBytes());
//第五步:接收服务端响应,打印
int responseCode = connection.getResponseCode();
String ret="默认值";
if(200 == responseCode){//表示服务端响应成功
//获取当前连接请求返回的数据流
InputStream is = connection.getInputStream();
InputStreamReader isr = new InputStreamReader(is,"utf-8");
BufferedReader br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String temp = null;
while(null != (temp = br.readLine())){
sb.append(temp);
}
//打印结果
ret=sb.toString();
if(ret.startsWith("<?"))
ret = ret.replaceAll("\\<\\?.+\\?\\>", "<?xml version='1.0' encoding='UTF-8'?>");
else
ret = (new StringBuilder("<?xml version='1.0' encoding='UTF-8'?>")).append(ret).toString();
/* String now = xml2jsonString(ret);
System.out.println("打印返回结果转成jsonString-------------");
result =JSONObject.parseObject(now);*/
is.close();
isr.close();
br.close();
//关闭连接
connection.disconnect();
}
os.close();
return ret;
// return result;
}
/**
* 获得要发送的webservice的xml形式的参数
* @param form 查询条件
* @return
*/
private static String getXML(Map<String,String> form, String method){
StringBuffer sb = new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?> ");
sb.append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:urn=\"urn:sap-com:document:sap:soap:functions:mc-style\">");
sb.append("<soapenv:Header/>");
sb.append("<soapenv:Body>");
sb.append("<urn:"+method+">");
if(method.contains("ZSd0002SendMatMd"))
sb.append("<In>");
// 设置请求参数
for(Iterator<String> it = form.keySet().iterator();it.hasNext();){
String key = it.next();
String value = form.get(key);
sb.append(" <"+key+">"+value+"</"+key+">");
}
if(method.contains("ZSd0002SendMatMd"))
sb.append("</In>");
sb.append("</urn:"+method+">");
sb.append("</soapenv:Body>");
sb.append("</soapenv:Envelope>");
System.out.println("getXML发送数据-----------------"+sb.toString());
return sb.toString();
}
/*
public static String xml2jsonString(String xml) throws Exception {
JSONObject xmlJSONObj = XML.toJSONObject(xml);
return xmlJSONObj.toString();
}*/
public static void main(String[] args) throws Exception {
/*String url = "http://192.168.0.82:8000/sap/bc/srt/rfc/sap/z_sd0002_send_mat_md/800/z_sd0002_send_mat_md/binding";
String method = "ZSd0002SendMatMd";
HashMap<String,String> form = new HashMap<String,String>();
form.put("MatnrFr", "24018347S");
form.put("MatnrTo", "24018347S");
//非必填字段
JSONObject ret = WebServiceUtil.process(url,method,form);
System.out.println("getXML返回数据-----------------"+ret.toString());
JSONObject Envelope = ret.optJSONObject("soap-env:Envelope");
JSONObject Body = Envelope.optJSONObject("soap-env:Body");
JSONObject ZfmGetSoResponse = Body.optJSONObject("n0:ZSd0002SendMatMdResponse");
JSONObject TZtsalesorder = ZfmGetSoResponse.optJSONObject("TZtsalesorder");
JSONArray item = TZtsalesorder.optJSONArray("item");
System.out.println("例子查询结果字段OResultmsg-----------------"+ZfmGetSoResponse.optString("OResultmsg"));
System.out.println("例子查询结果数组size-----------------"+item.size());*/
/* String url = "http://192.168.0.82:8000/sap/bc/srt/rfc/sap/zfg_ecc_to_zhwl/800/zfg_ecc_to_zhwl/binding";
String method="ZfmGetSo";
HashMap<String,String> form = new HashMap<String,String>();
form.put("IErdatFrm", "2019-05-01");
form.put("IErdatTo", "2019-05-08");
//非必填字段
form.put("IVbeln", "");
JSONObject ret = WebServiceUtil.process(url,method,form);
System.out.println("getXML发送数据-----------------"+ret.toString());
JSONObject Envelope = ret.optJSONObject("soap-env:Envelope");
JSONObject Body = Envelope.optJSONObject("soap-env:Body");
JSONObject ZfmGetSoResponse = Body.optJSONObject("n0:ZfmGetSoResponse");
JSONObject TZtsalesorder = ZfmGetSoResponse.optJSONObject("TZtsalesorder");
JSONArray item = TZtsalesorder.optJSONArray("item");
System.out.println("例子查询结果字段OResultmsg-----------------"+ZfmGetSoResponse.optString("OResultmsg"));
System.out.println("例子查询结果数组size-----------------"+item.size());*/
/* String url = "http://192.168.0.82:8000/sap/bc/srt/rfc/sap/zfg_ecc_to_zhwl/800/zfg_ecc_to_zhwl/binding";
String method = "ZfmGetDnZjwl";
HashMap<String,String> form = new HashMap<String,String>();
form.put("IErdatFrm", "2019-05-01");
form.put("IErdatTo", "2019-05-08");
//非必填字段
form.put("IVbeln", "");
//非必填字段
JSONObject ret = WebServiceUtil.process(url,method,form);
System.out.println("getXML发送数据-----------------"+ret.toString());
JSONObject Envelope = ret.optJSONObject("soap-env:Envelope");
JSONObject Body = Envelope.optJSONObject("soap-env:Body");
JSONObject ZfmGetDnZjwlResponse = Body.optJSONObject("n0:ZfmGetDnZjwlResponse");
JSONObject TZtdn = ZfmGetDnZjwlResponse.optJSONObject("TZtdn");
JSONArray item = TZtdn.optJSONArray("item");
System.out.println("例子查询结果字段OResultmsg-----------------"+ZfmGetDnZjwlResponse.optString("OResultmsg"));
System.out.println("例子查询结果数组size-----------------"+item.size());*/
}
}

View File

@@ -1,5 +1,5 @@
server:
port: 8011
port: 8099
#配置数据源
spring:
datasource:
@@ -55,7 +55,6 @@ spring:
multi-statement-alagvslow: true
redis:
#数据库索引
database: ${REDIS_DB:6}
host: ${REDIS_HOST:127.0.0.1}
#host: ${REDIS_HOST:localhost}

View File

@@ -158,6 +158,7 @@ https://juejin.cn/post/6844903775631572999
<!--生产环境:打印控制台和输出到文件-->
<springProfile name="prod">
<root level="warn">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
</root>
</springProfile>