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

   
   ### Environment
   
   * Dubbo version: 2.7.12
   * Operating System version: windos10
   * Java version: 1.8
   
   ### Steps to reproduce this issue
   ReferenceConfig<GenericService> reference = new ReferenceConfig();
           reference.setInterface("com.**.**.**");
           reference.setGroup(group);
           reference.setVersion(version);
           reference.setRetries(retryTime);
   
           RpcContext.getContext().setAttachment("generic", "gson");
           reference.setGeneric(true);
           reference.setCheck(false);
           reference.setTimeout(100000);
   
           GenericService genericService = 
ReferenceConfigCache.getCache().get(reference);
           Map<String, Object> result = (Map<String, Object>) 
genericService.$invoke(method, new String[]{param.getClass().getName()}, new 
Object[]{JSONObject.toJSONString(param)});
           
   上面是泛化调用代码
   
   1,系统启动第一次通过泛化调用dubbo服务会报如下错误,但是第二次调dubbo服务就正常了。
   2,我尝试过在调用dubbo服务的地方发生异常时捕获异常在重试也不行
   
   
   
   Pls. provide [GitHub address] to reproduce this issue.
   
   ### Expected Behavior
   
   
   
   If there is an exception, please attach the exception trace:
   
   ```
   org.springframework.web.util.NestedServletException: Request processing 
failed; nested exception is com.alibaba.dubbo.rpc.service.GenericException: 
java.lang.ClassCastException: java.lang.String cannot be cast to 
com.cloud.hub.dto.Command
   java.lang.ClassCastException: java.lang.String cannot be cast to 
com.cloud.hub.dto.Command
        at org.apache.dubbo.common.bytecode.Wrapper3.invokeMethod(Wrapper3.java)
        at 
org.apache.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:47)
        at 
org.apache.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:84)
        at 
org.apache.dubbo.config.invoker.DelegateProviderMetaDataInvoker.invoke(DelegateProviderMetaDataInvoker.java:56)
        at 
org.apache.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56)
        at 
org.apache.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:77)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:46)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:91)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:52)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:184)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at org.apache.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:41)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:129)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:146)
        at 
org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:100)
        at 
org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:175)
        at 
org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51)
        at 
org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at 
org.apache.dubbo.common.threadlocal.InternalRunnable.run(InternalRunnable.java:41)
        at java.lang.Thread.run(Thread.java:750)
   
        at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
 ~[spring-webmvc-5.3.8.jar:5.3.8]
        at 
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
 ~[spring-webmvc-5.3.8.jar:5.3.8]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:517) 
~[jakarta.servlet-api-4.0.4.jar:4.0.4]
        at 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
 ~[spring-webmvc-5.3.8.jar:5.3.8]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:584) 
~[jakarta.servlet-api-4.0.4.jar:4.0.4]
        at 
io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
com.github.xiaoymin.knife4j.spring.filter.SecurityBasicAuthFilter.doFilter(SecurityBasicAuthFilter.java:90)
 ~[knife4j-spring-1.9.6.jar:na]
        at 
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 
~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
com.github.xiaoymin.knife4j.spring.filter.ProductionSecurityFilter.doFilter(ProductionSecurityFilter.java:53)
 ~[knife4j-spring-1.9.6.jar:na]
        at 
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 
~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
 ~[spring-web-5.3.8.jar:5.3.8]
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
 ~[spring-web-5.3.8.jar:5.3.8]
        at 
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 
~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
 ~[spring-web-5.3.8.jar:5.3.8]
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
 ~[spring-web-5.3.8.jar:5.3.8]
        at 
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 
~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
 ~[spring-boot-actuator-2.5.2.jar:2.5.2]
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
 ~[spring-web-5.3.8.jar:5.3.8]
        at 
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 
~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
 ~[spring-web-5.3.8.jar:5.3.8]
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
 ~[spring-web-5.3.8.jar:5.3.8]
        at 
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 
~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) 
~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) 
~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
 ~[undertow-core-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
 ~[undertow-core-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
 ~[undertow-core-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
 ~[undertow-core-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
 ~[undertow-core-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
 ~[undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
 ~[undertow-core-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)
 [undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)
 [undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)
 [undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)
 [undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
 [undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
 [undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)
 [undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)
 [undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)
 [undertow-servlet-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.server.Connectors.executeRootHandler(Connectors.java:387) 
[undertow-core-2.2.8.Final.jar:2.2.8.Final]
        at 
io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:841) 
[undertow-core-2.2.8.Final.jar:2.2.8.Final]
        at 
org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
 [jboss-threads-3.1.0.Final.jar:3.1.0.Final]
        at 
org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
 [jboss-threads-3.1.0.Final.jar:3.1.0.Final]
        at 
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
 [jboss-threads-3.1.0.Final.jar:3.1.0.Final]
        at 
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1423)
 [jboss-threads-3.1.0.Final.jar:3.1.0.Final]
        at java.lang.Thread.run(Thread.java:750) [na:1.8.0_322]
   Caused by: com.alibaba.dubbo.rpc.service.GenericException: 
java.lang.ClassCastException: java.lang.String cannot be cast to 
com.cloud.hub.dto.Command
   java.lang.ClassCastException: java.lang.String cannot be cast to 
com.cloud.hub.dto.Command
        at org.apache.dubbo.common.bytecode.Wrapper3.invokeMethod(Wrapper3.java)
        at 
org.apache.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:47)
        at 
org.apache.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:84)
        at 
org.apache.dubbo.config.invoker.DelegateProviderMetaDataInvoker.invoke(DelegateProviderMetaDataInvoker.java:56)
        at 
org.apache.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56)
        at 
org.apache.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:77)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:46)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:91)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:52)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:184)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at org.apache.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:41)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:129)
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
        at 
org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:146)
        at 
org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:100)
        at 
org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:175)
        at 
org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51)
        at 
org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at 
org.apache.dubbo.common.threadlocal.InternalRunnable.run(InternalRunnable.java:41)
        at java.lang.Thread.run(Thread.java:750)
   
        at 
org.apache.dubbo.rpc.filter.GenericFilter.onResponse(GenericFilter.java:224) 
~[dubbo-2.7.12.jar:2.7.12]
        at 
org.apache.dubbo.rpc.protocol.FilterNode.lambda$invoke$0(FilterNode.java:99) 
~[dubbo-2.7.12.jar:2.7.12]
        at 
org.apache.dubbo.rpc.AsyncRpcResult.lambda$whenCompleteWithContext$0(AsyncRpcResult.java:197)
 ~[dubbo-2.7.12.jar:2.7.12]
        at 
java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774)
 ~[na:1.8.0_322]
        at 
java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:792)
 ~[na:1.8.0_322]
        at 
java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2153)
 ~[na:1.8.0_322]
        at 
org.apache.dubbo.rpc.AsyncRpcResult.whenCompleteWithContext(AsyncRpcResult.java:195)
 ~[dubbo-2.7.12.jar:2.7.12]
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:81) 
~[dubbo-2.7.12.jar:2.7.12]
        at 
org.apache.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38) 
~[dubbo-2.7.12.jar:2.7.12]
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) 
~[dubbo-2.7.12.jar:2.7.12]
        at org.apache.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:41) 
~[dubbo-2.7.12.jar:2.7.12]
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) 
~[dubbo-2.7.12.jar:2.7.12]
        at 
org.apache.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:129) 
~[dubbo-2.7.12.jar:2.7.12]
        at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) 
~[dubbo-2.7.12.jar:2.7.12]
        at 
org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:146)
 ~[dubbo-2.7.12.jar:2.7.12]
        at 
org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:100)
 ~[dubbo-2.7.12.jar:2.7.12]
        at 
org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:175)
 ~[dubbo-2.7.12.jar:2.7.12]
        at 
org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51)
 ~[dubbo-2.7.12.jar:2.7.12]
        at 
org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57)
 ~[dubbo-2.7.12.jar:2.7.12]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
~[na:1.8.0_322]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
~[na:1.8.0_322]
        at 
org.apache.dubbo.common.threadlocal.InternalRunnable.run(InternalRunnable.java:41)
 ~[dubbo-2.7.12.jar:2.7.12]
        ... 1 common frames omitted
   ```
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to