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

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.bootgroupId>
	<artifactId>spring-boot-maven-pluginartifactId>
	<configuration>
		<includeSystemScope>trueincludeSystemScope>
	configuration>
plugin>

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

你可能感兴趣的:(java)