min*_*ime 2 java nullpointerexception maven spring-data-mongodb
我一直在寻找该异常的答案,但在任何地方都找不到,因此,我将在此处保留此帖子以供将来参考。因此,如果有人遇到此问题,欢迎您。
我正在使用maven shade plugin一起创建可运行的jarorg.springframework.data:spring-data-mongodb:1.4.0.RELEASE
创建jar并运行后,我遇到了标题中的异常 java -jar Foo-0.0.1-SNAPSHOT.jar
答案是:
错误在这里:https : //github.com/spring-projects/spring-data-mongodb/blob/master/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert /DefaultDbRefResolver.java 在这一行:
private static final boolean IS_SPRING_4_OR_BETTER = SpringVersion.getVersion().startsWith("4");
Run Code Online (Sandbox Code Playgroud)
SpringVersion.getVersion如果无法从包中检索版本号,则返回null。由于依赖项是在有阴影的jar中提取的,因此没有软件包可以从中检索版本号并.startsWith("4")抛出NullPointerException。
要解决此问题(这是一种快速而肮脏的解决方案,但它可以工作),请org.springframework.core在您的源文件夹中创建一个包并创建以下类(我正在使用4.0.2-RELEASE版本中的springframework):
package org.springframework.core;
/**
* for spring data mongodb
* it can't determine the springversion in the shaded jar
*/
public class SpringVersion {
public static String getVersion() {
return "4.0.2-RELEASE";
}
}
Run Code Online (Sandbox Code Playgroud)
该类将覆盖原始的SpringVersion类文件。
| 归档时间: |
|
| 查看次数: |
1271 次 |
| 最近记录: |