Skip to content

Comments

Dubbo-samples-stub Refactor to springboot style#756

Merged
chickenlj merged 11 commits intoapache:masterfrom
mufiye:dubbo-samples-stub_refactor
Mar 3, 2023
Merged

Dubbo-samples-stub Refactor to springboot style#756
chickenlj merged 11 commits intoapache:masterfrom
mufiye:dubbo-samples-stub_refactor

Conversation

@mufiye
Copy link
Contributor

@mufiye mufiye commented Mar 1, 2023

Change the 2-advanced dubbo-samples-stub code "spring xml style" to "spring boot style". Wish to be reviewed.

@mufiye
Copy link
Contributor Author

mufiye commented Mar 2, 2023

I have checked the workflow results, and I find that many other modules fail but I think I don't change them. For my dubbo-samples-stub module, I run its integration test locally with 3.2.0-beta.4 successfully. But if run with 3.2.0-beta.5, the below error will appear.

java.lang.IllegalStateException: Extension instance (name: observationreceiver, class: interface org.apache.dubbo.rpc.Filter) couldn't be instantiated: null
	at org.apache.dubbo.common.extension.ExtensionLoader.createExtension(ExtensionLoader.java:826)
	at org.apache.dubbo.common.extension.ExtensionLoader.getExtension(ExtensionLoader.java:575)
	at org.apache.dubbo.common.extension.ExtensionLoader.getExtension(ExtensionLoader.java:549)
	at org.apache.dubbo.common.extension.ExtensionLoader.lambda$getActivateExtension$4(ExtensionLoader.java:398)
	at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
	at java.base/java.util.Collections$SynchronizedMap.forEach(Collections.java:2735)
	at org.apache.dubbo.common.extension.ExtensionLoader.getActivateExtension(ExtensionLoader.java:393)
	at org.apache.dubbo.common.extension.ExtensionLoader.getActivateExtension(ExtensionLoader.java:331)
	at org.apache.dubbo.rpc.cluster.filter.DefaultFilterChainBuilder.buildInvokerChain(DefaultFilterChainBuilder.java:50)
	at org.apache.dubbo.rpc.cluster.filter.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:61)
	at org.apache.dubbo.rpc.protocol.ProtocolSerializationWrapper.export(ProtocolSerializationWrapper.java:47)
	at org.apache.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java)
	at org.apache.dubbo.config.ServiceConfig.doExportUrl(ServiceConfig.java:738)
	at org.apache.dubbo.config.ServiceConfig.exportLocal(ServiceConfig.java:754)
	at org.apache.dubbo.config.ServiceConfig.exportUrl(ServiceConfig.java:640)
	at org.apache.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:450)
	at org.apache.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:432)
	at org.apache.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:394)
	at org.apache.dubbo.config.ServiceConfig.export(ServiceConfig.java:246)
	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.exportServiceInternal(DefaultModuleDeployer.java:350)
	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.exportServices(DefaultModuleDeployer.java:322)
	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.startSync(DefaultModuleDeployer.java:158)
	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.start(DefaultModuleDeployer.java:139)
	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onContextRefreshedEvent(DubboDeployApplicationListener.java:113)
	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:102)
	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:47)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:413)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:370)
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:587)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:432)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1302)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1291)
	at org.apache.dubbo.samples.stub.provider.StubProvider.main(StubProvider.java:33)
Caused by: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at org.apache.dubbo.common.beans.support.InstantiationStrategy.instantiate(InstantiationStrategy.java:94)
	at org.apache.dubbo.common.extension.ExtensionLoader.createExtensionInstance(ExtensionLoader.java:832)
	at org.apache.dubbo.common.extension.ExtensionLoader.createExtension(ExtensionLoader.java:791)
	... 38 more
Caused by: java.lang.NoClassDefFoundError: io/micrometer/observation/ObservationRegistry
	at org.apache.dubbo.metrics.filter.observation.ObservationReceiverFilter.<init>(ObservationReceiverFilter.java:39)
	... 46 more
Caused by: java.lang.ClassNotFoundException: io.micrometer.observation.ObservationRegistry
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	... 47 more

@chickenlj
Copy link
Contributor

I have checked the workflow results, and I find that many other modules fail but I think I don't change them. For my dubbo-samples-stub module, I run its integration test locally with 3.2.0-beta.4 successfully. But if run with 3.2.0-beta.5, the below error will appear.

java.lang.IllegalStateException: Extension instance (name: observationreceiver, class: interface org.apache.dubbo.rpc.Filter) couldn't be instantiated: null
	at org.apache.dubbo.common.extension.ExtensionLoader.createExtension(ExtensionLoader.java:826)
	at org.apache.dubbo.common.extension.ExtensionLoader.getExtension(ExtensionLoader.java:575)
	at org.apache.dubbo.common.extension.ExtensionLoader.getExtension(ExtensionLoader.java:549)
	at org.apache.dubbo.common.extension.ExtensionLoader.lambda$getActivateExtension$4(ExtensionLoader.java:398)
	at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
	at java.base/java.util.Collections$SynchronizedMap.forEach(Collections.java:2735)
	at org.apache.dubbo.common.extension.ExtensionLoader.getActivateExtension(ExtensionLoader.java:393)
	at org.apache.dubbo.common.extension.ExtensionLoader.getActivateExtension(ExtensionLoader.java:331)
	at org.apache.dubbo.rpc.cluster.filter.DefaultFilterChainBuilder.buildInvokerChain(DefaultFilterChainBuilder.java:50)
	at org.apache.dubbo.rpc.cluster.filter.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:61)
	at org.apache.dubbo.rpc.protocol.ProtocolSerializationWrapper.export(ProtocolSerializationWrapper.java:47)
	at org.apache.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java)
	at org.apache.dubbo.config.ServiceConfig.doExportUrl(ServiceConfig.java:738)
	at org.apache.dubbo.config.ServiceConfig.exportLocal(ServiceConfig.java:754)
	at org.apache.dubbo.config.ServiceConfig.exportUrl(ServiceConfig.java:640)
	at org.apache.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:450)
	at org.apache.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:432)
	at org.apache.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:394)
	at org.apache.dubbo.config.ServiceConfig.export(ServiceConfig.java:246)
	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.exportServiceInternal(DefaultModuleDeployer.java:350)
	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.exportServices(DefaultModuleDeployer.java:322)
	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.startSync(DefaultModuleDeployer.java:158)
	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.start(DefaultModuleDeployer.java:139)
	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onContextRefreshedEvent(DubboDeployApplicationListener.java:113)
	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:102)
	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:47)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:413)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:370)
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:587)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:432)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1302)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1291)
	at org.apache.dubbo.samples.stub.provider.StubProvider.main(StubProvider.java:33)

Yes, it's caused by other changes in apache/dubbo repo.

Copy link
Contributor

@chickenlj chickenlj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

public static void main(String[] args) throws Exception {
new EmbeddedZooKeeper(2181, false).start();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keeping an embedded zookeeper would make it easier for users to use.

@chickenlj chickenlj merged commit b92b12e into apache:master Mar 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants