jprotobuf icon indicating copy to clipboard operation
jprotobuf copied to clipboard

jprotobuf-2.0.2-jar-with-dependencies.jar,centos7环境,jdk 1.8.0_112

Open p0mp0k0 opened this issue 8 years ago • 9 comments

java.lang.ExceptionInInitializerError at com.baidu.bjf.remoting.protobuf.CodeGenerator.getAccessByField(CodeGenerator.java:633) at com.baidu.bjf.remoting.protobuf.CodeGenerator.getEncodeMethodCode(CodeGenerator.java:500) at com.baidu.bjf.remoting.protobuf.CodeGenerator.getCode(CodeGenerator.java:196) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.doCreate(ProtobufProxy.java:224) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:159) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:126) at com.novsky.bdds.jms.JMSSender.sendMessage(JMSSender.java:54) at com.novsky.bdds.business.StarTrackerTrackerRecieverCMD.V5(StarTrackerTrackerRecieverCMD.java:102) at com.novsky.bdds.business.StarTrackerTrackerRecieverCMD.process(StarTrackerTrackerRecieverCMD.java:42) at com.novsky.bdds.deviceservice.StarTrackerCmdHandler.channelRead0(StarTrackerCmdHandler.java:58) at com.novsky.bdds.deviceservice.StarTrackerCmdHandler.channelRead0(StarTrackerCmdHandler.java:1) at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:335) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:327) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:335) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:327) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:335) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:327) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:288) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:262) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:335) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:327) ................. Caused by: java.lang.IllegalStateException: Compilation failed. class: com.baidu.bjf.remoting.protobuf.descriptor.FileDescriptorProtoPOJO$$JProtoBufClass, diagnostics: [FileDescriptorProtoPOJO$$JProtoBufClass.java:2: 错误: 程序包com.google.protobuf不存在 import com.google.protobuf.; ^, FileDescriptorProtoPOJO$$JProtoBufClass.java:4: 错误: 程序包com.baidu.bjf.remoting.protobuf.utils不存在 import com.baidu.bjf.remoting.protobuf.utils.; ^, FileDescriptorProtoPOJO$$JProtoBufClass.java:8: 错误: 找不到符号 import com.baidu.bjf.remoting.protobuf.descriptor.FileDescriptorProtoPOJO; ^ 符号: 类 FileDescriptorProtoPOJO 位置: 程序包 com.baidu.bjf.remoting.protobuf.descriptor, FileDescriptorProtoPOJO$$JProtoBufClass.java:9: 错误: 找不到符号 public class FileDescriptorProtoPOJO$$JProtoBufClass implements com.baidu.bjf.remoting.protobuf.Codec<com.baidu.bjf.remoting.protobuf.descriptor.FileDescriptorProtoPOJO> { ^ 符号: 类 Codec 位置: 程序包 com.baidu.bjf.remoting.protobuf, FileDescriptorProtoPOJO$$JProtoBufClass.java:9: 错误: 找不到符号 public class FileDescriptorProtoPOJO$$JProtoBufClass implements com.baidu.bjf.remoting.protobuf.Codec<com.baidu.bjf.remoting.protobuf.descriptor.FileDescriptorProtoPOJO> { ^ 符号: 类 FileDescriptorProtoPOJO 位置: 程序包 com.baidu.bjf.remoting.protobuf.descriptor, FileDescriptorProtoPOJO$$JProtoBufClass.java:10: 错误: 程序包com.google.protobuf.Descriptors不存在 private com.google.protobuf.Descriptors.Descriptor descriptor; ^, FileDescriptorProtoPOJO$$JProtoBufClass.java:11: 错误: 找不到符号 public byte[] encode(com.baidu.bjf.remoting.protobuf.descriptor.FileDescriptorProtoPOJO t) throws IOException { ^ 符号: 类 FileDescriptorProtoPOJO 位置: 程序包 com.baidu.bjf.remoting.protobuf.descriptor, FileDescriptorProtoPOJO$$JProtoBufClass.java:105: 错误: 找不到符号 public com.baidu.bjf.remoting.protobuf.descriptor.FileDescriptorProtoPOJO decode(byte[] bb) throws IOException { ^ 符号: 类 FileDescriptorProtoPOJO 位置: 程序包 com.baidu.bjf.remoting.protobuf.descriptor, FileDescriptorProtoPOJO$$JProtoBufClass.java:222: 错误: 找不到符号 public int size(com.baidu.bjf.remoting.protobuf.descriptor.FileDescriptorProtoPOJO t) throws IOException { ^ 符号: 类 FileDescriptorProtoPOJO 位置: 程序包 com.baidu.bjf.remoting.protobuf.descriptor, FileDescriptorProtoPOJO$$JProtoBufClass.java:303: 错误: 找不到符号 public void writeTo(com.baidu.bjf.remoting.protobuf.descriptor.FileDescriptorProtoPOJO t, CodedOutputStream output) throws IOException { ^ 符号: 类 FileDescriptorProtoPOJO 位置: 程序包 com.baidu.bjf.remoting.protobuf.descriptor, FileDescriptorProtoPOJO$$JProtoBufClass.java:303: 错误: 找不到符号 public void writeTo(com.baidu.bjf.remoting.protobuf.descriptor.FileDescriptorProtoPOJO t, CodedOutputStream output) throws IOException { ^ 符号: 类 CodedOutputStream 位置: 类 com.baidu.bjf.remoting.protobuf.descriptor.FileDescriptorProtoPOJO$$JProtoBufClass, FileDescriptorProtoPOJO$$JProtoBufClass.java:382: 错误: 找不到符号 public com.baidu.bjf.remoting.protobuf.descriptor.FileDescriptorProtoPOJO readFrom(CodedInputStream input) throws IOException { ^ 符号: 类 CodedInputStream 位置: 类 com.baidu.bjf.remoting.protobuf.descriptor.FileDescriptorProtoPOJO$$JProtoBufClass, FileDescriptorProtoPOJO$$JProtoBufClass.java:382: 错误: 找不到符号 public com.baidu.bjf.remoting.protobuf.descriptor.FileDescriptorProtoPOJO readFrom(CodedInputStream input) throws IOException { ^ 符号: 类 FileDescriptorProtoPOJO 位置: 程序包 com.baidu.bjf.remoting.protobuf.descriptor, FileDescriptorProtoPOJO$$JProtoBufClass.java:498: 错误: 程序包com.google.protobuf.Descriptors不存在 public com.google.protobuf.Descriptors.Descriptor getDescriptor() throws IOException { ^] at com.baidu.bjf.remoting.protobuf.utils.compiler.JdkCompiler.doCompile(JdkCompiler.java:145) at com.baidu.bjf.remoting.protobuf.utils.compiler.AbstractCompiler.compile(AbstractCompiler.java:37) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.doCreate(ProtobufProxy.java:249) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:159) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:126) at com.baidu.bjf.remoting.protobuf.CodedConstant.(CodedConstant.java:87)

p0mp0k0 avatar Dec 01 '16 06:12 p0mp0k0

把具体的使用方式与proto文件发一下出来

jhunters avatar Dec 01 '16 06:12 jhunters

就因为用jprotobuf所以就没做proto文件 要有proto文件,还差protoc那一步的功夫吗?

p0mp0k0 avatar Dec 02 '16 17:12 p0mp0k0

我也遇到这个问题了 sprint boot 项目 在eclipse直接run as java application没有问题 java -jar xxx.jar就出现这个错误提示 是不是类加载的问题

AncientRemember avatar Jun 28 '17 04:06 AncientRemember

spring boot运行,建议使用 precompile方式,进行预编译处理

jhunters avatar Jun 28 '17 04:06 jhunters

@jhunter 谢谢 ,使用precompile问题解决了

AncientRemember avatar Jun 28 '17 05:06 AncientRemember

@jhunters spring boot项目,messageconvertor,decode没有问题,encode时遇到类找不到问题 java.lang.NoClassDefFoundError: Could not initialize class com.baidu.bjf.remoting.protobuf.CodedConstant at com.hyc.sxcloud.das.domain.CommonResponse$$JProtoBufClass.encode(CommonResponse$$JProtoBufClass.java:13) ~[classes!/:2.0] at com.hyc.sxcloud.das.domain.CommonResponse$$JProtoBufClass.encode(CommonResponse$$JProtoBufClass.java:9) ~[classes!/:2.0] at com.hyc.sxcloud.das.utils.JProtobufHttpMessageConverter.writeInternal(JProtobufHttpMessageConverter.java:80) ~[classes!/:2.0] at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:227) ~[spring-web-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:247) ~[spring-webmvc-4.3.9.RELEASE.jar!/:4.3.9.RELEASE]

AncientRemember avatar Jun 29 '17 03:06 AncientRemember

用2.0.7没有问题

AncientRemember avatar Jun 29 '17 04:06 AncientRemember

你使用的哪个版本?

jhunters avatar Jun 29 '17 05:06 jhunters

这边也是一样预编译后 decode没问题 encode有问题,用了2.0.7后就可以了。 尴尬的问题是之前用的最新的2.1.4,也就是说2.1.4还存在这个问题。希望最新版本也能解决这个问题吧

junking1983 avatar Nov 24 '17 07:11 junking1983