修改中文编码

master
rengp 2 years ago
parent 7132ead78b
commit 9126d079db

@ -1,58 +1,37 @@
package com;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import com.engine.util.XMLUtils;
import java.io.*;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.Map;
public class Client {
// public static final int port = 8090;
public static final int port = 8090;
public static final String host = "14.1.209.146";
// public static final String host = "127.0.0.1";
// public static final String host = "14.1.209.146";
public static final String host = "127.0.0.1";
public static void main(String[] args) {
System.out.println("Client Start...");
String str = "00000604<?xml version=\"1.0\" encoding=\"gbk\"?><Service><Service_Header><service_sn>1010157060000081243</service_sn><system_id>0258</system_id><requester_id>0157</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20230905104426</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720230905060000081243</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><path>todo</path><method>getCount</method><args><entry><key>userNum</key><value>10913026任广鹏是个大刷币</value></entry></args></request></Service_Body></Service>";
// String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>1010157060000081243</service_sn><system_id>0258</system_id><requester_id>0157</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20230905104426</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720230905060000081243</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><path>todo</path><method>getCount</method><args><entry><key>userNum</key><value>10913026任广鹏是个大刷币</value></entry></args></request></Service_Body></Service>";
// Map<String, String> stringStringMap = XMLUtils.parseXMLToMap(str);
// System.out.println(stringStringMap);
System.out.println(str.length());
// while (true) {
Socket socket = null;
try {
//创建一个流套接字并将其连接到指定主机上的指定端口号
socket = new Socket(host,port);
// String str = "00000612<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>1010157060000081243</service_sn><system_id>0258</system_id><requester_id>0157</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20230905104426</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720230905060000081243</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><path>todo</path><method>getCount</method><args><entry><key>userNum</key><value>10913026任广鹏是个大刷币</value></entry></args></request></Service_Body></Service>";
// System.out.println(str);
//读取服务器端数据
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
//向服务器端发送数据
PrintStream out = new PrintStream(socket.getOutputStream());
// System.out.print("请输入: \t");
// String str = new BufferedReader(new InputStreamReader(System.in)).readLine();
String str = "00000656<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<Service>\n" +
" <Service_Header>\n" +
" <service_sn>1010157010000001812</service_sn>\n" +
" <system_id>0258</system_id>\n" +
" <requester_id>0157</requester_id>\n" +
" <branch_id>010231100</branch_id>\n" +
" <channel_id>01</channel_id>\n" +
" <service_time>20230621170408</service_time>\n" +
" <need_request>true</need_request>\n" +
" <SvcCd>500130004</SvcCd>\n" +
" <SvcScn>13</SvcScn>\n" +
" <BnkSrlNo>015720230621010000001812</BnkSrlNo>\n" +
" <FileFlg>0</FileFlg>\n" +
" <FilePath/>\n" +
" </Service_Header>\n" +
" <Service_Body>\n" +
" <request>\n" +
" <method>getCount</method>\n" +
" <path>todo</path>"+
" <args>\n" +
" <entry>\n" +
" <key>userNum</key>\n" +
" <value>10110039</value>\n" +
" </entry>\n" +
" </args>\n" +
" </request>\n" +
" </Service_Body>\n" +
"</Service>";
// PrintStream out = new PrintStream(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8));
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8),true);
out.println(str);
String ret = input.readLine();

@ -4,6 +4,7 @@ import com.alibaba.druid.util.StringUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import weaver.general.BaseBean;
import javax.xml.parsers.DocumentBuilder;
@ -15,6 +16,7 @@ import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
@ -167,11 +169,13 @@ public class XMLUtils {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new ByteArrayInputStream(xmlString.getBytes()));
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(xmlString.getBytes(StandardCharsets.UTF_8));
Document document = builder.parse(byteArrayInputStream);
Element rootElement = document.getDocumentElement();
extractValues(rootElement, resultMap);
} catch (Exception e) {
new BaseBean().writeLog(e.getMessage());
e.printStackTrace();
}
return resultMap;

@ -82,9 +82,9 @@ public class TJBKWorkFlow {
Map<String, String> paramMap = null;
String result = "";
try {
String substring = param.substring(8, param.length());
// String substring = param.substring(8, param.length());
// new BaseBean().writeLog("xml报文"+substring);
paramMap = XMLUtils.parseXMLToMap(substring);
paramMap = XMLUtils.parseXMLToMap(param);
String path = paramMap.get("path");
String method = paramMap.get("method");

@ -3,6 +3,7 @@ package com.engine.web.tjbk;
import com.engine.tjbankSocket.SocketExecute;
import com.engine.tjbankSocket.impl.GetToCountSocketExecute;
import com.engine.util.XMLUtils;
import org.apache.commons.lang.StringEscapeUtils;
import weaver.general.BaseBean;
import weaver.general.StringUtil;
@ -30,7 +31,7 @@ public class TjbkServerSocket implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub
new BaseBean().writeLog("contextInitialized启动");
ServletContext servletContext = arg0.getServletContext();
if (socketThread == null) {
socketThread = new SocketThread(null, servletContext);
@ -64,6 +65,7 @@ class SocketThread extends Thread {
while (!this.isInterrupted()) { // 线程未中断执行循环
try {
new BaseBean().writeLog("SocketThread线程启动");
Socket socket = serverSocket.accept();
if (socket != null) {
new ProcessSocketData(socket, this.servletContext).start();
@ -109,23 +111,36 @@ class ProcessSocketData extends Thread {
PrintWriter pw = new PrintWriter(outputStreamWriter);
InputStream inputStream = socket.getInputStream();
// byte[] arr = new byte[1024];
// int length = inputStream.read(arr);//返回有效数据长度
byte[] arr = new byte[1024];
int bytesRead;
StringBuilder stringBuilder = new StringBuilder();
while ((bytesRead = inputStream.read(arr)) != -1) {
// bytesRead contains the number of bytes read from the input stream
stringBuilder.append(new String(arr, 0, bytesRead, StandardCharsets.UTF_8));
}
// String data = new String(arr, 0, length);
String requestData = stringBuilder.toString();
new BaseBean().writeLog("ServerSocket线程启动");
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
// StringBuilder requestData = new StringBuilder();
String inputLine;
char[] datalen=new char[8];//报文前八位为报文体总长度
in.read(datalen,0,8);
String lendata=new String (datalen);
int length=Integer.parseInt(lendata);
// byte[] data=new byte[length];
char[] data=new char[length];
int datalength = in.read(data,0,length);
String requestData = new String(data);
// inputLine = in.readLine();
// requestData.append(inputLine);
// System.out.println("Received from client: " + inputLine);
// byte[] datalen=new byte[8];//报文前八位为报文体总长度
// inputStream.read(datalen);
// String lendata=new String (datalen);
// int length=Integer.parseInt(lendata);
// // byte[] data=new byte[length];
// byte[] data=new byte[length];
// int datalength = inputStream.read(data);
// String requestData = new String(data, 0, datalength);
String s = "";
if (!StringUtil.isEmpty(requestData)) {
s = new TJBKWorkFlow().getToDoCount(requestData);
if (!StringUtil.isEmpty(requestData.toString())) {
new BaseBean().writeLog("requestData",requestData);
s = execute(requestData.toString());
}
// 执行自定义的请求解析方法生成响应response
pw.println(s);
@ -141,7 +156,9 @@ class ProcessSocketData extends Thread {
private String execute(String XMLparam){
Map<String, String> paramMap = XMLUtils.parseXMLToMap(XMLparam);
StringEscapeUtils.unescapeXml(XMLparam);
//目标系统代码
String system_id = paramMap.get("system_id");
// 请求方系统代码
@ -149,7 +166,7 @@ class ProcessSocketData extends Thread {
// 请求方机构代号
String branch_id = paramMap.get("branch_id");
SocketExecute socketExecute = null;
if ("1".equals(requester_id)){
if ("0157".equals(requester_id)){
socketExecute = new GetToCountSocketExecute();
}
String execute = socketExecute.execute(XMLparam);

@ -0,0 +1,99 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetTrans;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
public class Action20230906023509 extends BaseBean implements Action {
public static final String sql = "insert into workflow_requestlog (requestid,workflowid,nodeid,logtype,operatedate,operatetime,operator,remark1,clientip,operatortype,destnodeid,receivedpersons_1,showorder,agentorbyagentid,agenttype,logid,annexdocids,requestlogid,operatordept,signdocids,signworkflowids,receivedpersons,ismobile,handwrittensign,speechattachment,receivedpersonids,\n" +
"remarklocation,issubmitdirect,remarkquote,fulltextannotation,speechattachmente9,remark,operatorsub,operatorjob,isrobotnode,seclevel) \n" +
" select \n" +
"'{?lc}',\n" +
"'331',\n" +
"'2181',\n" +
"'2',\n" +
"r.operatedate,\n" +
"r.operatetime,\n" +
"r.operator,\n" +
"r.remark1,\n" +
"r.clientip,\n" +
"r.operatortype, \n" +
"'', \n" +
"'{?xbbmzh}',\n" +
"r.showorder,\n" +
"r.agentorbyagentid,\n" +
"r.agenttype,\n" +
"r.logid,\n" +
"r.annexdocids,\n" +
"r.requestlogid,\n" +
"r.operatordept,\n" +
"r.signdocids,\n" +
"r.signworkflowids, \n" +
"'',r.ismobile,\n" +
"r.handwrittensign,\n" +
"r.speechattachment,\n" +
"'',\n" +
"r.remarklocation,\n" +
"r.issubmitdirect,\n" +
"r.remarkquote,\n" +
"r.fulltextannotation,\n" +
"r.speechattachmente9,\n" +
"r.remark, \n" +
"r.operatorsub, \n" +
"r.operatorjob, \n" +
"r.isrobotnode, \n" +
"r.seclevel \n" +
"from workflow_requestlog r where \n" +
"r.requestid={?requestid}\n" +
"and r.nodeid=2169\n" +
"order by r.operatedate desc,r.operatetime desc limit 1";
@Override
public String execute(RequestInfo request) {
// 1:Log
writeLog("Action20230906023509 action start...");
// 2Exception
// boolean error = true;
// if (error) {
// request.getRequestManager().setMessageid("90001");
// request.getRequestManager().setMessagecontent("System Abnormal Termination Process Submission");
// }
// 3Get requestid
String requestId = request.getRequestid();
// 4Get form tableName
String tablename = request.getRequestManager().getBillTableName();
// 5Find form content
RecordSet rs = new RecordSet();
rs.execute("select * from " + tablename + " where requestid = " + requestId);
rs.next();
String lc = rs.getString("lc"); //idForm primary key
String xbbmzh = rs.getString("xbbmzh"); //formDataField name for form design
RecordSetTrans rsTrans = new RecordSetTrans();
String excutesql = sql.replaceAll("\\{\\?xbbmzh}",xbbmzh).replaceAll("\\{\\?lc}",lc).replaceAll("\\{\\?requestid}",requestId);
try {
writeLog("Action20230906023509 action rsTrans" + rsTrans);
writeLog("Action20230906023509 action excutesql" + excutesql);
rsTrans.executeSql(excutesql);
} catch (Exception e) {
e.printStackTrace();
return Action.FAILURE_AND_CONTINUE;
}
return Action.SUCCESS;
}
public static void main(String[] args) {
// System.out.println(sql);
String excutesql = sql.replaceAll("\\{\\?xbbmzh}","11111").replaceAll("\\{\\?lc}","22222").replaceAll("\\{\\?requestid}","3333");
System.out.println(excutesql);
}
}
Loading…
Cancel
Save