Prechádzať zdrojové kódy

修改了BankSocket

qiubo 3 rokov pred
rodič
commit
b8b38a18d1

+ 37 - 0
pom.xml

@@ -188,6 +188,43 @@
 					<skip>true</skip>
 				</configuration>
 			</plugin>
+
+
+			<!-- mybatis generator-->
+			<plugin>
+				<groupId>org.mybatis.generator</groupId>
+				<artifactId>mybatis-generator-maven-plugin</artifactId>
+				<version>1.3.5</version>
+				<dependencies>
+					<dependency>
+						<groupId> mysql</groupId>
+						<artifactId> mysql-connector-java</artifactId>
+						<version>5.1.39</version>
+					</dependency>
+					<dependency>
+						<groupId>org.mybatis.generator</groupId>
+						<artifactId>mybatis-generator-core</artifactId>
+						<version>1.3.5</version>
+					</dependency>
+				</dependencies>
+				<executions>
+					<execution>
+						<id>Generate MyBatis Artifacts</id>
+						<phase>deploy</phase>
+						<goals>
+							<goal>generate</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<!--允许移动生成的文件 -->
+					<verbose>true</verbose>
+					<!-- 是否覆盖 -->
+					<overwrite>true</overwrite>
+					<!-- 自动生成的配置 -->
+					<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
+				</configuration>
+			</plugin>
 		</plugins>
 	</build>
 </project>

+ 45 - 25
src/main/java/com/hywa/banktest/bankframework/socketHandle/BankSocket.java

@@ -1,12 +1,6 @@
 package com.hywa.banktest.bankframework.socketHandle;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
+import java.io.*;
 import java.net.ServerSocket;
 import java.net.Socket;
 import javax.annotation.PostConstruct;
@@ -31,8 +25,8 @@ public class BankSocket {
 	int serverPort;
 	@Value("${local.post.socket.port}")
 	int localSocketPort;
-	
-	
+
+
 	public Dlmaps query(Dlmaps requestPacket) {
 		Socket socket = null;
 		BufferedReader br = null;
@@ -44,16 +38,26 @@ public class BankSocket {
 			socket = new Socket(serverAddr, serverPort);
 			//socket.setSoTimeout(1000 * 58);
 			os = socket.getOutputStream();
-			pw = new PrintWriter(os, true);
+
+			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os,"UTF-8"));
+//			pw = new PrintWriter(os, true);
 			String requestStr = dlmaps2RequestStr(requestPacket);
 			log.info("发送报文:" + requestStr);
-			pw.write(requestStr);
-			pw.flush();
+
+//			pw.write(requestStr);
+//			pw.flush();
+
+			bw.write(requestStr);
+			bw.flush();
 //			socket.shutdownOutput();
 			is = socket.getInputStream();
+//			br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
+//			String s = br.readLine();
+//			String s1 = inputStream22Str(s);
+
 
 			result.append(inputStream2Str(is));
-			
+
 			log.error("收到响应报文:" + result);
 			log.info("收到响应报文:" + result);
 		} catch (IOException e) {
@@ -65,7 +69,7 @@ public class BankSocket {
 		result.delete(result.indexOf("***"), result.length());
 		return XmlUtils.fromXML(result.toString(), Dlmaps.class);
 	}
-	
+
 //	@PostConstruct
 	public void socketServer() {
 
@@ -83,14 +87,14 @@ public class BankSocket {
 					try {
 						socket = serverSocket.accept();
 						is = socket.getInputStream();
-						br = new BufferedReader(new InputStreamReader(is));
-						
+						br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
+
 						StringBuffer result = new StringBuffer(inputStream2Str(is));
 						log.info("服务端收到报文:" + result);
 						result.delete(0, result.indexOf("<"));
-						if (result.toString().contains("***"))
-						result.delete(result.indexOf("***"), result.length());
-
+						if (result.toString().contains("***")){
+							result.delete(result.indexOf("***"), result.length());
+						}
 						log.info("服务端处理xml报文:" + result);
 						Dlmaps dlmaps = XmlUtils.fromXML(result.toString(), Dlmaps.class);
 						BankRequsetProcess bankRequsetProcess = (BankRequsetProcess) SpringContext.getBean("bankRequsetProcess");
@@ -124,7 +128,7 @@ public class BankSocket {
 			}
 		}).start();
 	}
-	
+
 	private String inputStream2Str(InputStream is) throws IOException {
 		byte[] readbuf = new byte[4];
 		is.read(readbuf);
@@ -136,16 +140,32 @@ public class BankSocket {
 		String reciveString = new String(readbuf, 0, readbuf.length, "UTF-8");
 		return String.format("%04d", msglen) + reciveString;
 	}
-	
+	private String inputStream22Str(String is) throws IOException {
+
+		Integer msglen = Integer.parseInt(is);
+		return String.format("%04d", msglen) + is;
+	}
+
 	private String dlmaps2RequestStr(Dlmaps requestPacket) throws UnsupportedEncodingException {
-		String xmlRequest = XmlUtils.toXML(requestPacket);
+		String xml = XmlUtils.toXML(requestPacket);
+		String xmlRequest = xml;
 		StringBuffer requestPac = new StringBuffer();
 		requestPac.append("TEB").append(requestPacket.getPUB().getTRADE_ID()).append(requestPacket.getPUB().getDPT_ID()).append(xmlRequest);
-		
+		System.out.println("源数据的报文:"+requestPac.toString());
+		System.out.println("源数据的报文长度:"+requestPac.toString().getBytes("UTF-8").length + 3);
 		StringBuffer requestStr = new StringBuffer(String.format("%04d", requestPac.toString().getBytes("UTF-8").length + 3)).append(requestPac).append("***");
+
 		return requestStr.toString();
 	}
-	
+
+
+
+	public static void main(String[] args) throws UnsupportedEncodingException {
+		String requestPac = new String("中国人".getBytes("UTF-8"));
+		String format = String.format("%04d", requestPac.toString().getBytes("UTF-8").length + 3);
+		System.out.println(format);
+	}
+
 	private void closeAll(Socket socket, BufferedReader br, InputStream is, PrintWriter pw, OutputStream os) {
 		if (null != br) {
 			try {
@@ -179,5 +199,5 @@ public class BankSocket {
 			}
 		}
 	}
-	
+
 }