Browse Source

修改NodeAgent,修复Junit方式的热部署war包

chacha2014 5 years ago
parent
commit
690e417dba

+ 8 - 1
o2server/x_console/src/main/java/com/x/server/console/NodeAgent.java

@@ -3,6 +3,7 @@ package com.x.server.console;
 import java.io.*;
 import java.io.*;
 import java.net.ServerSocket;
 import java.net.ServerSocket;
 import java.net.Socket;
 import java.net.Socket;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.regex.Pattern;
@@ -48,6 +49,8 @@ public class NodeAgent extends Thread {
 
 
 	public static final int LOG_MAX_READ_SIZE = 6 * 1024;
 	public static final int LOG_MAX_READ_SIZE = 6 * 1024;
 
 
+	private static final int BUFFER_SIZE = 1024*1024*1000;
+
 	@Override
 	@Override
 	public void run() {
 	public void run() {
 		try (ServerSocket serverSocket = new ServerSocket(Config.currentNode().nodeAgentPort())) {
 		try (ServerSocket serverSocket = new ServerSocket(Config.currentNode().nodeAgentPort())) {
@@ -56,7 +59,11 @@ public class NodeAgent extends Thread {
 				try (Socket socket = serverSocket.accept()) {
 				try (Socket socket = serverSocket.accept()) {
 					try (DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
 					try (DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
 						 DataInputStream dis = new DataInputStream(socket.getInputStream())) {
 						 DataInputStream dis = new DataInputStream(socket.getInputStream())) {
-						String json = dis.readUTF();
+						//String json = dis.readUTF();
+						final char[] data = new char[BUFFER_SIZE];
+						final BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
+						final int len = br.read(data);
+						final String json = String.valueOf(data, 0, len);
 						//logger.info("receive socket json={}",json);
 						//logger.info("receive socket json={}",json);
 						CommandObject commandObject = XGsonBuilder.instance().fromJson(json, CommandObject.class);
 						CommandObject commandObject = XGsonBuilder.instance().fromJson(json, CommandObject.class);
 						if (BooleanUtils.isTrue(Config.currentNode().nodeAgentEncrypt())) {
 						if (BooleanUtils.isTrue(Config.currentNode().nodeAgentEncrypt())) {