<%@ page import="org.slf4j.Logger" %> <%@ page import="org.slf4j.LoggerFactory" %> <%@ page import="java.net.Socket" %> <%@ page import="java.io.PrintWriter" %> <%@ page import="java.io.BufferedReader" %> <%@ page import="weaver.general.BaseBean" %> <%@ page import="java.io.OutputStreamWriter" %> <%@ page import="java.io.InputStreamReader" %> <%@ page import="com.engine.custom.sl.entity.EsbRequestHeader" %> <%@ page import="java.text.SimpleDateFormat" %> <%@ page import="java.util.Date" %> <%@ page import="com.engine.custom.sl.entity.TravelToEsbBean" %> <%@ page import="java.nio.charset.StandardCharsets" %> <%@ page import="cn.hutool.json.XML" %> <%@ page import="cn.hutool.json.JSONObject" %> <%@ page import="weaver.hrm.HrmUserVarify" %> <%@ page import="weaver.file.Prop" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %> <% Logger log = LoggerFactory.getLogger("CustomBusiness"); // String test = "1099000000总行-公共部门x01099000001总行-行领导01099000002总行-办公室01099000003总行-董监事会办公室01099000004总行-审计部01099000005总行-公司业务部01099000006总行-交易银行部01099000007总行-小微普惠金融部01099000008总行-投资银行部01099000009总行-个人金融部01099000010总行-信用卡部01099000011总行-E天津银行部01099000012总行-金融市场部01099000013总行-资产管理部01099000014总行-风险管理部01099000015总行-授信业务部01099000016总行-资产保全部01099000017总行-法律事务部01099000018总行-内控合规部01099000019总行-资产负债管理部01099000020总行-财务会计部01099000021总行-运营管理部01099000022总行-营运中心01099000023总行-国际业务部01099000024总行-党群工作部01099000025总行-人力资源部01099000026总行-驻行纪检监察组01099000027总行-战略发展部01099000028总行-信息技术部11099000029总行-行政事务部01099000030总行-安全保卫部01099000031总行-天银科创筹备组01099000033总行-机构业务部0"; // out.print(test); String workCode = HrmUserVarify.getUser(request, response).getLoginid(); // String workCode = request.getParameter("loginid"); log.info("workcode:{}",workCode); String timeStr = generateTimestamp(); EsbRequestHeader esbRequestHeader = new EsbRequestHeader(); esbRequestHeader.setService_sn(timeStr+workCode); esbRequestHeader.setSystem_id("0170"); esbRequestHeader.setRequester_id("0258"); esbRequestHeader.setBranch_id("CWGL0015"); esbRequestHeader.setChannel_id("08"); esbRequestHeader.setService_time(timeStr); esbRequestHeader.setNeed_request(""); esbRequestHeader.setSvcCd("500120047"); esbRequestHeader.setSvcScn("08"); String bnkSrlNo = esbRequestHeader.getRequester_id() + timeStr + workCode; esbRequestHeader.setBnkSrlNo(bnkSrlNo); esbRequestHeader.setFileFlg("0"); String Service_Body = ""+workCode+"" ; String Service_Header = TravelToEsbBean.convertObjectToXml(esbRequestHeader,"Service_Header"); String serviceXML = ""; // out.print("UTF_8_serviceXML==="+ serviceXML); serviceXML = serviceXML + Service_Header + Service_Body; serviceXML = serviceXML + ""; // out.print("UTF_8_serviceXML==="+ serviceXML); String length = String.format("%08d", serviceXML.length()); serviceXML = length + serviceXML; serviceXML = new String(serviceXML.getBytes(StandardCharsets.UTF_8)); // out.print(serviceXML); // out.print("-----------------"); String send = ""; try { send = send(serviceXML); send = send.substring(send.indexOf("")+14,send.indexOf("")); JSONObject jsonObject = XML.toJSONObject(send); log.info(jsonObject.toString()); out.print(jsonObject.toString()); }catch (Exception e){ } BaseBean baseBean = new BaseBean(); %> <%! public String send(String request) throws Exception { BaseBean baseBean = new BaseBean(); baseBean.writeLog("Client Start..."); String host = Prop.getPropValue("TJcwbd", "host"); String port = Prop.getPropValue("TJcwbd", "port"); String responseStr = ""; try { // 创建Socket对象并连接到服务器 Socket socket = new Socket(host, Integer.parseInt(port)); // 创建输出流,向服务器发送数据 PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8"), true); // 创建输入流,接收服务器返回的数据 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8")); // 发送请求 out.println(request); // 读取前8个字符来获取数据的总长度 char[] lengthBuffer = new char[8]; in.read(lengthBuffer, 0, 8); int totalLength = Integer.parseInt(new String(lengthBuffer).trim()); // 根据总长度读取完整的数据 char[] responseBuffer = new char[totalLength]; int bytesRead = 0; while (bytesRead < totalLength) { int read = in.read(responseBuffer, bytesRead, totalLength - bytesRead); if (read == -1) { break; // 结束读取 } bytesRead += read; } responseStr = new String(responseBuffer); baseBean.writeLog("Server response: " + responseStr); // 关闭输入输出流和Socket out.close(); in.close(); socket.close(); } catch (Exception e) { // e.printStackTrace(); } responseStr = removeContentAfterSubstring(responseStr); baseBean.writeLog("Client End..." + responseStr); return responseStr; } public static String removeContentAfterSubstring(String input) { int index = input.indexOf(""); if (index != -1) { return input.substring(0, index + "".length()); } else { return input; } } public static String generateTimestamp() { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); Date currentDate = new Date(); return dateFormat.format(currentDate); } %>