首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分片-jdbc: preciseAlgorithmClassName: java -jar project.jar错误:由: java.lang.ClassNotFoundException引起

分片-jdbc: preciseAlgorithmClassName: java -jar project.jar错误:由: java.lang.ClassNotFoundException引起
EN

Stack Overflow用户
提问于 2020-05-18 14:51:18
回答 1查看 142关注 0票数 1

https://github.com/apache/shardingsphere/issues/5657依赖关系:

代码语言:javascript
复制
<dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
            <version>4.0.0-RC1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-core-common</artifactId>
            <version>4.0.0-RC1</version>
        </dependency>

yml配置的一部分:

代码语言:javascript
复制
precise-algorithm-class-name: package-name.my-class-name
range-algorithm-class-name: package-name.my-class-name

当我运行java -jar project.jar.....错误信息:

代码语言:javascript
复制
Caused by: java.lang.ClassNotFoundException: package-name.my-class-name
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) ~[na:na]
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190) ~[na:na]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499) ~[na:na]
    at java.base/java.lang.Class.forName0(Native Method) ~[na:na]
    at java.base/java.lang.Class.forName(Class.java:291) ~[na:na]
    at org.apache.shardingsphere.core.strategy.route.ShardingAlgorithmFactory.newInstance(ShardingAlgorithmFactory.java:45) ~[sharding-core-common-4.0.0-RC1.jar:4.0.0-RC1]
    at org.apache.shardingsphere.core.yaml.swapper.impl.ShardingStrategyConfigurationYamlSwapper.swap(ShardingStrategyConfigurationYamlSwapper.java:75) ~[sharding-core-common-4.0.0-RC1.jar:4.0.0-RC1]
    at org.apache.shardingsphere.core.yaml.swapper.impl.TableRuleConfigurationYamlSwapper.swap(TableRuleConfigurationYamlSwapper.java:63) ~[sharding-core-common-4.0.0-RC1.jar:4.0.0-RC1]
    at org.apache.shardingsphere.core.yaml.swapper.impl.ShardingRuleConfigurationYamlSwapper.swap(ShardingRuleConfigurationYamlSwapper.java:82) ~[sharding-core-common-4.0.0-RC1.jar:4.0.0-RC1]
    at org.apache.shardingsphere.shardingjdbc.spring.boot.SpringBootConfiguration.dataSource(SpringBootConfiguration.java:95) ~[sharding-jdbc-spring-boot-starter-4.0.0-RC1.jar:4.0.0-RC1]
    at org.apache.shardingsphere.shardingjdbc.spring.boot.SpringBootConfiguration$$EnhancerBySpringCGLIB$$645084fc.CGLIB$dataSource$0(<generated>) ~[sharding-jdbc-spring-boot-starter-4.0.0-RC1.jar:4.0.0-RC1]
    at org.apache.shardingsphere.shardingjdbc.spring.boot.SpringBootConfiguration$$EnhancerBySpringCGLIB$$645084fc$$FastClassBySpringCGLIB$$a4b3c757.invoke(<generated>) ~[sharding-jdbc-spring-boot-starter-4.0.0-RC1.jar:4.0.0-RC1]
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) ~[spring-core-5.1.8.RELEASE.jar:5.1.8.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
    at org.apache.shardingsphere.shardingjdbc.spring.boot.SpringBootConfiguration$$EnhancerBySpringCGLIB$$645084fc.dataSource(<generated>) ~[sharding-jdbc-spring-boot-starter-4.0.0-RC1.jar:4.0.0-RC1]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
    ... 155 common frames omitted

我在IDEA中成功地运行了这个项目

这是一个Spring Boot项目,我将依赖的jar包从应用程序jar包中分离出来。

精确算法类位于正确的类路径中。

出现此问题的原因是依赖的jar包与应用程序jar包分离。

这是个bug吗?

EN

回答 1

Stack Overflow用户

发布于 2021-10-12 03:54:20

这不是开源项目的bug。Caused by: java.lang.ClassNotFoundException: package-name.my-class-name是个例外

问题来自您的示例代码package-name.my-class-name

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61863906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档