Commit ccd7b281 by huangfusuper

修改 请求响应包序列化方式

parent a19ef644
package com.byit.enums;
import com.byit.serialization.HessianSerialize;
import com.byit.serialization.ISerializer;
import com.byit.serialization.JsonSerializer;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 序列化算法标识
* @author huangfu
*/
public enum SerializerAlgorithm {
JSON(Byte.parseByte("1"),new JsonSerializer(),"FastJson序列化方式")
JSON(Byte.parseByte("1"),new JsonSerializer(),"FastJson序列化方式"),
HESSIAN_JSON(Byte.parseByte("2"),new HessianSerialize(),"Hessian序列化方式")
;
private byte serializerAlgorithm;
private ISerializer iSerializer;
......
......@@ -3,6 +3,7 @@ package com.byit.packet.request;
import com.byit.enums.Command;
import com.byit.enums.SerializerAlgorithm;
import com.byit.packet.BasePacketModel;
import com.byit.param.ResultCallback;
import lombok.Data;
import lombok.EqualsAndHashCode;
......@@ -14,6 +15,10 @@ import lombok.EqualsAndHashCode;
@Data
public class PluginRpcRequestPacket extends BasePacketModel {
/**
* 一次请求的标识
*/
private String requestId;
/**
* 任务名称
*/
private String jobName;
......@@ -24,6 +29,8 @@ public class PluginRpcRequestPacket extends BasePacketModel {
private String param;
private ResultCallback resultCallback;
@Override
public Command getCommand() {
return Command.RUN_REMOTELY_JOB_NODE_REQUEST;
......@@ -31,6 +38,6 @@ public class PluginRpcRequestPacket extends BasePacketModel {
@Override
public SerializerAlgorithm getSerializerAlgorithm() {
return SerializerAlgorithm.JSON;
return SerializerAlgorithm.HESSIAN_JSON;
}
}
......@@ -13,7 +13,10 @@ import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
public class PluginRpcResponsePacket extends BasePacketModel {
/**
* 一次请求的标识
*/
private String requestId;
/**
* 日志ID 扩展字段也可传其他参数
*/
......@@ -30,6 +33,6 @@ public class PluginRpcResponsePacket extends BasePacketModel {
@Override
public SerializerAlgorithm getSerializerAlgorithm() {
return SerializerAlgorithm.JSON;
return SerializerAlgorithm.HESSIAN_JSON;
}
}
package com.byit.serialization;
import com.byit.enums.SerializerAlgorithm;
import com.caucho.hessian.io.HessianInput;
import com.caucho.hessian.io.HessianOutput;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
/**
* @Auther: huangfu
* @Date: 2020年4月9日17:40:57
* @Description: Hessian实现序列化、反序列化
*/
public class HessianSerialize implements ISerializer {
@Override
public byte getSerializerAlgorithm() {
return SerializerAlgorithm.HESSIAN_JSON.getSerializerAlgorithm();
}
@Override
public byte[] serialize(Object object) {
ByteArrayOutputStream byteArrayOutputStream = null;
HessianOutput hessianOutput = null;
try {
byteArrayOutputStream = new ByteArrayOutputStream();
// Hessian的序列化输出
hessianOutput = new HessianOutput(byteArrayOutputStream);
hessianOutput.writeObject(object);
return byteArrayOutputStream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
byteArrayOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
hessianOutput.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
public <T> T deserialize(Class<T> clazz, byte[] bytes) {
ByteArrayInputStream byteArrayInputStream = null;
HessianInput hessianInput = null;
try {
byteArrayInputStream = new ByteArrayInputStream(bytes);
// Hessian的反序列化读取对象
hessianInput = new HessianInput(byteArrayInputStream);
return (T) hessianInput.readObject();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
byteArrayInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
hessianInput.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment