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