You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by "Crimsonfantasy (via GitHub)" <gi...@apache.org> on 2023/06/28 14:09:35 UTC

[GitHub] [dubbo] Crimsonfantasy opened a new issue, #12612: 配置了fastjson, client序列化, 仍是用hessain2

Crimsonfantasy opened a new issue, #12612:
URL: https://github.com/apache/dubbo/issues/12612

   dubbo 的配置:
   
   
   ```
   dubbo:
     application:
       name: xxxxx
       metadata-type: remote
       register-mode: instance
     registry:
       #    address: zookeeper://127.0.0.1:2181
       address: 'nacos://127.0.0.1:8848?namespace=0b508754-dba9-48ef-807e-c19e7c08e59b'
     metadata-report:
       address: 'nacos://127.0.0.1:8848?namespace=0b508754-dba9-48ef-807e-c19e7c08e59b'
     scan:
       basePackages: com.alliance.bcex.adaptor.rpc
     provider:
       protocol: dubbo
       version: 1.0.0
     consumer:
       timeout: 30000
       version: 1.0.0
       protocol: dubbo
     protocol:
       #    host: 172.22.80.1
       name: dubbo
       port: 20888
       serialization: fastjson2
       prefer-serialization: fastjson2
   
   ```
   
   
   client的code:
   ```
   
        var reference = new ReferenceConfig<>();
           reference.setInterface(UserInfoDetailService.class);
           reference.setProtocol("dubbo");
           reference.setVersion("1.0.0");
           var bootstrap = DubboBootstrap.getInstance();
           var config = new ProtocolConfig();
           config.setPreferSerialization("fastjson2");
           config.setSerialization("fastjson2");
           // registry configuration
           bootstrap.application("demo-consumer") // application configuration
                   .registry(new RegistryConfig("nacos://127.0.0.1:8848?namespace=0b508754-dba9-48ef-807e-c19e7c08e59b"))
                   .protocol(config)
                   .reference(reference) // add ReferenceConfig
                   .start(); // Start Dubbo
   
           var demoService = DubboBootstrap.getInstance().getCache().get(UserInfoDetailService.class);
           var cmd = new AlarmAddCmd();
           var c = demoService.addAlarm(cmd);
   
   ```
   
   
   然後再調用的時候, 會拋出stacktract:
   
   ```
   ava.lang.reflect.InaccessibleObjectException: Unable to make field private int java.math.BigInteger.bitLengthPlusOne accessible: module java.base does not "opens java.math" to unnamed module @1a3869f4
   	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
   	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
   	at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
   	at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
   	at com.alibaba.com.caucho.hessian.io.JavaDeserializer.getFieldMap(JavaDeserializer.java:340)
   	at com.alibaba.com.caucho.hessian.io.JavaDeserializer.<init>(JavaDeserializer.java:80)
   	at com.alibaba.com.caucho.hessian.io.BigIntegerDeserializer.<init>(BigIntegerDeserializer.java:25)
   	at com.alibaba.com.caucho.hessian.io.SerializerFactory.<clinit>(SerializerFactory.java:142)
   	at org.apache.dubbo.common.serialize.hessian2.Hessian2FactoryManager.createDefaultSerializerFactory(Hessian2FactoryManager.java:81)
   	at org.apache.dubbo.common.serialize.hessian2.Hessian2FactoryManager.createSerializerFactory(Hessian2FactoryManager.java:77)
   	at org.apache.dubbo.common.serialize.hessian2.Hessian2FactoryManager.getSerializerFactory(Hessian2FactoryManager.java:62)
   	at org.apache.dubbo.common.serialize.hessian2.Hessian2ObjectOutput.<init>(Hessian2ObjectOutput.java:44)
   	at org.apache.dubbo.common.serialize.hessian2.Hessian2Serialization.serialize(Hessian2Serialization.java:57)
   	at org.apache.dubbo.remoting.exchange.codec.ExchangeCodec.encodeRequest(ExchangeCodec.java:269)
   	at org.apache.dubbo.remoting.exchange.codec.ExchangeCodec.encode(ExchangeCodec.java:79)
   	at org.apache.dubbo.rpc.protocol.dubbo.DubboCountCodec.encode(DubboCountCodec.java:51)
   	at org.apache.dubbo.remoting.transport.netty4.NettyChannel.send(NettyChannel.java:192)
   	at org.apache.dubbo.remoting.transport.AbstractClient.send(AbstractClient.java:202)
   	at org.apache.dubbo.remoting.transport.AbstractPeer.send(AbstractPeer.java:53)
   	at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeChannel.request(HeaderExchangeChannel.java:141)
   	at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeClient.request(HeaderExchangeClient.java:103)
   	at org.apache.dubbo.rpc.protocol.dubbo.ReferenceCountExchangeClient.request(ReferenceCountExchangeClient.java:94)
   	at org.apache.dubbo.rpc.protocol.dubbo.DubboInvoker.doInvoke(DubboInvoker.java:128)
   	at org.apache.dubbo.rpc.protocol.AbstractInvoker.doInvokeAndReturn(AbstractInvoker.java:242)
   	at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:186)
   	at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:71)
   	at org.apache.dubbo.metrics.filter.MetricsFilter.invoke(MetricsFilter.java:56)
   	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)
   	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:194)
   	at org.apache.dubbo.rpc.protocol.ReferenceCountInvokerWrapper.invoke(ReferenceCountInvokerWrapper.java:78)
   	at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invokeWithContext(AbstractClusterInvoker.java:380)
   	at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:81)
   	at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:341)
   	at org.apache.dubbo.rpc.cluster.router.RouterSnapshotFilter.invoke(RouterSnapshotFilter.java:46)
   	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)
   	at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:101)
   	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)
   	at org.apache.dubbo.rpc.cluster.filter.support.MetricsClusterFilter.invoke(MetricsClusterFilter.java:51)
   	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)
   	at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:52)
   	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)
   	at org.apache.dubbo.rpc.cluster.filter.support.ObservationSenderFilter.invoke(ObservationSenderFilter.java:61)
   	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)
   	at org.apache.dubbo.spring.security.filter.ContextHolderParametersSelectedTransferFilter.invoke(ContextHolderParametersSelectedTransferFilter.java:41)
   	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)
   	at org.apache.dubbo.rpc.cluster.filter.support.ConsumerClassLoaderFilter.invoke(ConsumerClassLoaderFilter.java:40)
   	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)
   	at org.apache.dubbo.rpc.cluster.filter.support.ConsumerContextFilter.invoke(ConsumerContextFilter.java:118)
   	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)
   	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:194)
   	at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$ClusterFilterInvoker.invoke(AbstractCluster.java:91)
   	at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:103)
   	at org.apache.dubbo.rpc.cluster.support.wrapper.ScopeClusterInvoker.invoke(ScopeClusterInvoker.java:131)
   
   
   ```
   
   我看nacos上的meta info, 確實都是使用了fastjson2
   雖然可以正常調用, 但是不知道為什麼會有hessian2的序列化錯誤!?
   我的app的dependency也沒有hessian2了
   各位有什麼看法?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


Re: [I] 配置了fastjson2, client序列化, 仍會用hessain2做一些事, 但是調用會成功, classpath確定沒有hessian2的library了 [dubbo]

Posted by "AlbumenJ (via GitHub)" <gi...@apache.org>.
AlbumenJ closed issue #12612: 配置了fastjson2, client序列化, 仍會用hessain2做一些事, 但是調用會成功, classpath確定沒有hessian2的library了
URL: https://github.com/apache/dubbo/issues/12612


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] Crimsonfantasy commented on issue #12612: 配置了fastjson2, client序列化, 仍會用hessain2做一些事, 但是調用會成功, classpath確定沒有hessian2的library了

Posted by "Crimsonfantasy (via GitHub)" <gi...@apache.org>.
Crimsonfantasy commented on issue #12612:
URL: https://github.com/apache/dubbo/issues/12612#issuecomment-1611580577

   自問自答, 我找到答案了, 看source code是會先從url解析需要什麼!
   
   在spring 設置上添加:
   
   ```
   
     provider:
       protocol: dubbo
       version: 1.0.0
       prefer-serialization: fastjson2
   
   ```
   
   就可以了


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org