Spring打包后启动出现 java.lang.ArrayStoreException:sun.reflect.annotation.TypeNotPresentExceptionProxy

Springboot项目在本地调试正常,但在maven打包后运行时出现`java.lang.ArrayStoreException:sun.reflect.annotation.TypeNotPresentExceptionProxy`异常。解决方法是检查POM文件,确认是否有system范围的jar包引入,因为Springboot默认不包含此类依赖,需在spring-boot-maven-plugin中添加includeSystemScope配置,以确保system依赖被打包进jar。

Springboot项目本地调试没有问题,maven打包运行出现java.lang.ArrayStoreException:sun.reflect.annotation.TypeNotPresentExceptionProxy异常

java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
        at sun.reflect.annotation.AnnotationParser.parseClassArray(Unknown Source) ~[na:1.8.0_25]
        at sun.reflect.annotation.AnnotationParser.parseArray(Unknown Source) ~[na:1.8.0_25]
        at sun.reflect.annotation.AnnotationParser.parseMemberValue(Unknown Source) ~[na:1.8.0_25]
        at sun.reflect.annotation.AnnotationParser.parseAnnotation2(Unknown Source) ~[na:1.8.0_25]
        at sun.reflect.annotation.AnnotationParser.parseAnnotations2(Unknown Source) ~[na:1.8.0_25]
        at sun.reflect.annotation.AnnotationParser.parseAnnotations(Unknown Source) ~[na:1.8.0_25]
        at java.lang.Class.createAnnotationData(Unknown Source) ~[na:1.8.0_25]
        at java.lang.Class.annotationData(Unknown Source) ~[na:1.8.0_25]
        at java.lang.Class.getAnnotations(Unknown Source) ~[na:1.8.0_25]
        at org.springframework.core.type.StandardAnnotationMetadata.<init>(StandardAnnotationMetadata.java:70) ~[spring-core-5.1.11.RELEASE.jar!/:5.1.11.RELEASE]
        at org.springframework.beans.factory.annotation.AnnotatedGenericBeanDefinition.<init>(AnnotatedGenericBeanDefinition.java:58) ~[spring-beans-5.1.11.RELEASE.jar!/:5.1.11.RELEASE]
        at org.springframework.context.annotation.AnnotatedBeanDefinitionReader.doRegisterBean(AnnotatedBeanDefinitionReader.java:217) ~[spring-context-5.1.11.RELEASE.jar!/:5.1.11.RELEASE]
        at org.springframework.context.annotation.AnnotatedBeanDefinitionReader.registerBean(AnnotatedBeanDefinitionReader.java:146) ~[spring-context-5.1.11.RELEASE.jar!/:5.1.11.RELEASE]
        at org.springframework.context.annotation.AnnotatedBeanDefinitionReader.register(AnnotatedBeanDefinitionReader.java:136) ~[spring-context-5.1.11.RELEASE.jar!/:5.1.11.RELEASE]
        at org.springframework.boot.BeanDefinitionLoader.load(BeanDefinitionLoader.java:156) ~[spring-boot-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
        at org.springframework.boot.BeanDefinitionLoader.load(BeanDefinitionLoader.java:135) ~[spring-boot-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
        at org.springframework.boot.BeanDefinitionLoader.load(BeanDefinitionLoader.java:127) ~[spring-boot-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
        at org.springframework.boot.SpringApplication.load(SpringApplication.java:688) [spring-boot-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
        at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:386) [spring-boot-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) [spring-boot-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1204) [spring-boot-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
        at com.sf.gis.mape.nanshan.openservice.NanshanOpenserviceApplication.main(NanshanOpenserviceApplication.java:18) [classes!/:0.0.1-SNAPSHOT]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_25]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_25]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_25]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_25]
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [nanshan-openservice.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [nanshan-openservice.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) [nanshan-openservice.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) [nanshan-openservice.jar:0.0.1-SNAPSHOT]

检查POM文件中是否有system的外部jar包引入,Springboot 打包时候spring-boot-maven-plugin 默认不会打入scope 为 system的相关依赖,需要加入下面配置:

<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
	<configuration>
		<includeSystemScope>true</includeSystemScope>
	</configuration>
</plugin>

includeSystemScope 指明要将system的包打入到需要运行的jar包中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值