Jprotobuf-rpc-socket icon indicating copy to clipboard operation
Jprotobuf-rpc-socket copied to clipboard

两个问题

Open nsspw opened this issue 9 years ago • 14 comments

1.Jprotobuf与Protostuff有多大优势? 2.执行mvn clean install -Dmaven.test.skip=true命令时出现: GPG Passphrase: * 我回车,就提示“*'gpg.exe' 不是内部或外部命令,也不是可运行的程序”,怎么解决?谢谢!

nsspw avatar Feb 14 '16 13:02 nsspw

按照文档测试一下,启动服务端时出现: 二月 14, 2016 9:41:22 下午 com.baidu.jprotobuf.pbrpc.server.RpcServiceRegistry doRegiterService 信息: RPC service register log: serviceName[rpc_meta_watch_service] methodName[ping] from com.baidu.jprotobuf.pbrpc.meta.RpcServiceMetaServiceProvider.ping 二月 14, 2016 9:41:25 下午 com.baidu.jprotobuf.pbrpc.server.RpcServiceRegistry doRegiterService 信息: RPC service register log: serviceName[rpc_meta_watch_service] methodName[getRpcServiceMetaInfo] from com.baidu.jprotobuf.pbrpc.meta.RpcServiceMetaServiceProvider.getRpcServiceMetaInfo Exception in thread "main" java.lang.NullPointerException at com.baidu.bjf.remoting.protobuf.utils.ClassHelper.getLastModifyTime(ClassHelper.java:65) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.doCreate(ProtobufProxy.java:182) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:156) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:124) at com.baidu.jprotobuf.pbrpc.server.AnnotationRpcHandler.(AnnotationRpcHandler.java:53) at com.baidu.jprotobuf.pbrpc.server.RpcServiceRegistry.doCreateRpcHandler(RpcServiceRegistry.java:106) at com.baidu.jprotobuf.pbrpc.server.RpcServiceRegistry.doRegiterService(RpcServiceRegistry.java:117) at com.baidu.jprotobuf.pbrpc.server.RpcServiceRegistry.access$000(RpcServiceRegistry.java:40) at com.baidu.jprotobuf.pbrpc.server.RpcServiceRegistry$1.doWith(RpcServiceRegistry.java:94) at com.baidu.jprotobuf.pbrpc.utils.ReflectionUtils.doWithMethods(ReflectionUtils.java:64) at com.baidu.jprotobuf.pbrpc.utils.ReflectionUtils.doWithMethods(ReflectionUtils.java:41) at com.baidu.jprotobuf.pbrpc.server.RpcServiceRegistry.registerService(RpcServiceRegistry.java:88) at com.baidu.jprotobuf.pbrpc.transport.RpcServer.registerService(RpcServer.java:159) at com.test.jprotobuf.JprotobufServer.main(JprotobufServer.java:11)

nsspw avatar Feb 14 '16 13:02 nsspw

上面抛空指针的异常已解决

nsspw avatar Feb 15 '16 04:02 nsspw

关于gpg的使用,可参见http://www.trinea.cn/dev-tools/upload-java-jar-or-android-aar-to-maven-center-repository/ jprotobuf可以让protobuf免去idl的编写与手工编译工作,提升开发效率,使用注解也方式可以保持类的可读型与可修改性

javalucking avatar Feb 16 '16 09:02 javalucking

谢谢回复。 若我想在EchoInfo中定义比价复杂的集合类型,应怎么处理,比如: public class EchoInfo { @Protobuf public List<String> list; @Protobuf public List<Map<String,String> list2; } 我测了一下,好像是不可行的。

nsspw avatar Feb 17 '16 15:02 nsspw

如果集合的类型,必须要指定泛型,同时在@Protobuf注解上也需要指定类型,例如 @Protobuf(fieldType=FieldType.Object) public List<Student> list;

xiemalin avatar Feb 18 '16 02:02 xiemalin

好的,TKS。Jprotobuf-rpc-socket有没有在生产环境中用?稳定性怎样?

nsspw avatar Feb 18 '16 02:02 nsspw

本产品已经在多个线上业务使用,也包括涉及到钱相关的业务产品,产品也表现的很稳定,暂未收到相关的问题反馈.

xiemalin avatar Feb 18 '16 02:02 xiemalin

好的,我认为Jprotobuf-rpc-socket比现在比较火的Dubbo更轻量级,所以我们准备线上使用。 服务的注册和发现的文档有没有?

nsspw avatar Feb 18 '16 03:02 nsspw

参见 https://github.com/Baidu-ecom/Jprotobuf-rpc-socket/wiki/User-Guide redis注册服务使用示例

xiemalin avatar Feb 18 '16 04:02 xiemalin

通过Spring配置: localhost:1031 报如下错误: at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:618) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:934) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5524) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.ExceptionInInitializerError at com.baidu.bjf.remoting.protobuf.CodeGenerator.getAccessByField(CodeGenerator.java:823) at com.baidu.bjf.remoting.protobuf.CodeGenerator.getEncodeMethodCode(CodeGenerator.java:687) at com.baidu.bjf.remoting.protobuf.CodeGenerator.getCode(CodeGenerator.java:232) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.doCreate(ProtobufProxy.java:215) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:156) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:124) at com.baidu.jprotobuf.pbrpc.client.PojoRpcMethodInfo.(PojoRpcMethodInfo.java:48) at com.baidu.jprotobuf.pbrpc.client.ProtobufRpcProxy.proxy(ProtobufRpcProxy.java:209) at com.baidu.jprotobuf.pbrpc.client.ha.HaProtobufRpcProxy.doProxy(HaProtobufRpcProxy.java:176) at com.baidu.jprotobuf.pbrpc.client.ha.HaProtobufRpcProxy.createServiceProxy(HaProtobufRpcProxy.java:141) at com.baidu.jprotobuf.pbrpc.client.ha.HaProtobufRpcProxy.proxy(HaProtobufRpcProxy.java:130) at com.baidu.jprotobuf.pbrpc.spring.HaRpcProxyFactoryBean.afterPropertiesSet(HaRpcProxyFactoryBean.java:148) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1573) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1511) ... 21 more 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 { ....... (报很多错,没全部贴出来) 是什么原因?

nsspw avatar Feb 21 '16 15:02 nsspw

是spring配置方式, localhost:1031

nsspw avatar Feb 21 '16 15:02 nsspw

`public interface NamingService {

/**
 * get server list from naming service.
 * 
 * @param serviceSignatures service signatures
 * @return server list mapped by service signature.
 * @throws Exception in case of any exception
 */
Map<String, List<RegisterInfo>> list(Set<String> serviceSignatures) throws Exception;

} Map<String, List<RegisterInfo>>里的key指的是什么;RegisterInfo里除了host、port,其他参数要设置吗? `

nsspw avatar Feb 22 '16 03:02 nsspw

Map<String, List<RegisterInfo>> key是服务唯一标识serviceSignature, RegisterInfo目前只使用host和port

xiemalin avatar Feb 23 '16 04:02 xiemalin

spring的错误,你看一下是不是依赖的包没有protobuf-java.jar这个类库?

xiemalin avatar Feb 23 '16 04:02 xiemalin