Java 如何解决;与预期的标签不匹配";例外
当我测试这两个名为Java 如何解决;与预期的标签不匹配";例外,java,protocol-buffers,netty,Java,Protocol Buffers,Netty,当我测试这两个名为ProtobufVarint32FrameDecoder和ProtobufDecoder的ChannelInboundHandler时,出现了一个异常,即协议消息端组标记与预期标记不匹配 import com.google.protobuf.InvalidProtocolBufferException; import com.testnetdeve.custom.proto.AlarmProto; import io.netty.buffer.ByteBuf; import i
ProtobufVarint32FrameDecoder
和ProtobufDecoder
的ChannelInboundHandler
时,出现了一个异常,即协议消息端组标记与预期标记不匹配
import com.google.protobuf.InvalidProtocolBufferException;
import com.testnetdeve.custom.proto.AlarmProto;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.embedded.EmbeddedChannel;
import io.netty.handler.codec.protobuf.ProtobufDecoder;
import io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;
import org.junit.Test;
public class AlarmProtoTest {
@Test
public void testAlarmProto(){
AlarmProto.Alarm.Builder builder = AlarmProto.Alarm.newBuilder();
builder.setCommunity("Quene Home");
builder.setBuildingId(31);
builder.setBuildingPart("B");
builder.setCellId(1);
builder.setRoomId(204);
builder.setAlarmCategory("Fire");
builder.setAttachment("current time");
EmbeddedChannel ch = new EmbeddedChannel();
ch.pipeline().addLast("frameDecoder",new ProtobufVarint32FrameDecoder());
ch.pipeline().addLast("decoder",new ProtobufDecoder(AlarmProto.Alarm.getDefaultInstance()));
byte[] bytes = builder.build().toByteArray();
System.out.println("the length of after being serialized: " + bytes.length);
ByteBuf buf = Unpooled.copiedBuffer(bytes);
System.out.println(buf.readableBytes());
assert ch.writeInbound(buf);
assert ch.finish();
AlarmProto.Alarm alarm = ch.readInbound();
System.out.println(alarm.toString());
}
}
我希望来自通道的输出数据是报警类型。我在测试中出现任何错误?将标签更改为正确的标签,我想将标签更改为正确的标签,我想