sofastack / sofa-rpc

SOFARPC is a high-performance, high-extensibility, production-level Java RPC framework.
https://www.sofastack.tech/sofa-rpc/docs/Home
Apache License 2.0
3.81k stars 1.17k forks source link

Error occurred during quick start with sofa-registry #1029

Closed nobodyiam closed 2 years ago

nobodyiam commented 3 years ago

Describe the bug

When I followed the instructions of the quick start with sofa-registry, it won't start due to fatal errors.

It looks like there are dependency conflicts between sofa-rpc and sofa-registry on com.alipay.sofa.common:sofa-common-tools and com.alipay.sofa:bolt.

Expected behavior

  1. It should just work following the documents
  2. We may either instruct the user to import some dependency bom(sofaboot-dependencies) or manually specify the required dependency versions.

Actual behavior

Sofa-Middleware-Log SLF4J : Actual binding is of type [ com.alipay.sofa.rpc Log4j2 ]
[sofa-demo][main]2021-04-12 16:54:50,723 INFO  [com.alipay.sofa.common.log] Sofa-Middleware-Log SLF4J : Actual binding is of type [ com.alipay.sofa.rpc Log4j2 ]
Exception in thread "main" java.lang.ExceptionInInitializerError
    at com.alipay.sofa.rpc.config.AbstractIdConfig.<clinit>(AbstractIdConfig.java:40)
    at com.nobodyiam.java.sofa.rpc.QuickStartServer.main(QuickStartServer.java:11)
Caused by: com.alipay.sofa.rpc.core.exception.SofaRpcRuntimeException
    at com.alipay.sofa.rpc.common.utils.ClassUtils.newInstance(ClassUtils.java:181)
    at com.alipay.sofa.rpc.common.utils.ClassUtils.newInstanceWithArgs(ClassUtils.java:198)
    at com.alipay.sofa.rpc.ext.ExtensionClass.getExtInstance(ExtensionClass.java:107)
    at com.alipay.sofa.rpc.ext.ExtensionClass.getExtInstance(ExtensionClass.java:90)
    at com.alipay.sofa.rpc.tracer.TracerFactory.getTracer(TracerFactory.java:44)
    at com.alipay.sofa.rpc.module.RestTracerModule.install(RestTracerModule.java:78)
    at com.alipay.sofa.rpc.module.ModuleFactory.installModules(ModuleFactory.java:90)
    at com.alipay.sofa.rpc.context.RpcRuntimeContext.<clinit>(RpcRuntimeContext.java:99)
    ... 2 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.alipay.sofa.rpc.common.utils.ClassUtils.newInstance(ClassUtils.java:177)
    ... 9 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.alipay.sofa.rpc.tracer.sofatracer.factory.ReporterFactory
    at com.alipay.sofa.rpc.tracer.sofatracer.RpcSofaTracer.generateReporter(RpcSofaTracer.java:133)
    at com.alipay.sofa.rpc.tracer.sofatracer.RpcSofaTracer.<init>(RpcSofaTracer.java:83)
    ... 14 more

Steps to reproduce

  1. quick start code with sofa-registry enabled
  2. with pom.xml like the following:
  <properties>
    <log4j2.version>2.14.1</log4j2.version>
    <registry.client.version>5.2.0</registry.client.version>
    <rpc.client.version>5.7.7</rpc.client.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>sofa-rpc-all</artifactId>
        <version>${rpc.client.version}</version>
      </dependency>
      <dependency>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>registry-client-all</artifactId>
        <version>${registry.client.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>com.alipay.sofa</groupId>
      <artifactId>registry-client-all</artifactId>
    </dependency>
    <dependency>
      <groupId>com.alipay.sofa</groupId>
      <artifactId>sofa-rpc-all</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
    </dependency>
    <!-- mandatory dependency when log4j2 is enabled  -->
    <dependency>
      <groupId>com.lmax</groupId>
      <artifactId>disruptor</artifactId>
      <version>3.3.6</version>
    </dependency>
  </dependencies>

Environment

EvenLjj commented 3 years ago

@nobodyiam The version of rpc-sofa-boot-starter is not provided, if you use 5.5.2, can you change it to 3.6.0 and have a try. My local environment did not report the same error.

nobodyiam commented 3 years ago

@EvenLjj this quick start doesn't involve sofa boot which means there is no rpc-sofa-boot-starter.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

nobodyiam commented 2 years ago

@EvenLjj I suppose this issue is still valid?