【发布时间】:2017-09-15 19:52:42
【问题描述】:
我正在使用 Spring Boot 使用带有 Runnable Jar 的 Export 命令创建一个独立的 jar,并尝试在命令提示符下运行该 jar,但它抛出了以下错误,同一个应用程序正在 eclipse 中运行。我不能使用 maven,也没有在我的应用程序中使用 spring-boot-thymeleaf。即使在添加 spring-boot-autoconfigurator-thymeleaf jar 之后,我也会收到此错误。
2017-04-19 19:32:55.320 INFO 26320 --- [main] .b.l.ClasspathLoggingApplicationListener:应用程序无法使用类路径启动:[file:/C:/Users/XXX/Downloads/mySpringBoot.jar]
2017-04-19 19:32:55.321 信息 26320 --- [主要] utoConfigurationReportLoggingInitializer:
启动 ApplicationContext 时出错。显示启用调试日志的自动配置报告(以 --debug 开头)
线程“主”org.springframework.beans.factory.BeanCreationException 中的异常:创建名为“org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafViewResolverConfiguration”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.spri
ngframework.beans.factory.BeanCreationException:无法自动装配字段:私有 org.thymeleaf.spring4.SpringTemplateEngine org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafViewResolverConfiguration.templateEngine;嵌套异常是 org.springframework.beans.f
actory.BeanCreationException:创建名为 'org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafDefaultConfiguration' 的 bean 时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException: 不能
自动装配字段:私有最终 java.util.Collection org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafDefaultConfiguration.templateResolvers;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为 'org.springframew 的 bean 时出错
ork.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration':init 方法调用失败;嵌套异常是 java.lang.IllegalStateException:找不到模板位置:类路径资源 [templates/](您真的在使用 Thymeleaf 吗?)
在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700)
在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
在 org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120)
在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:619)
在 org.springframework.boot.SpringApplication.run(SpringApplication.java:306)
在 org.springframework.boot.SpringApplication.run(SpringApplication.java:880)
在 org.springframework.boot.SpringApplication.run(SpringApplication.java:869)
在 hello.Application.main(Application.java:14)
引起:org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 org.thymeleaf.spring4.SpringTemplateEngine org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafViewResolverConfiguration.templateEngine;嵌套异常是 org.spri
ngframework.beans.factory.BeanCreationException:创建名为“org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafDefaultConfiguration”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationEx
接收:无法自动装配字段:私有最终 java.util.Collection org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafDefaultConfiguration.templateResolvers;嵌套异常是 org.springframework.beans.factory.BeanCreationException: Error created bean with nam
e 'org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration':init 方法调用失败;嵌套异常是 java.lang.IllegalStateException: 找不到模板位置: 类路径资源 [templates/] (你真的在使用 Thymeleaf
?)
在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:508)
在 org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289)
... 16 更多
原因:org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafDefaultConfiguration”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.fac
tory.BeanCreationException:无法自动装配字段:私有最终 java.util.Collection org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafDefaultConfiguration.templateResolvers;嵌套异常是 org.springframework.beans.factory.BeanCreationException: Error cre
使用名称为“org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration”的 bean:调用 init 方法失败;嵌套异常是 java.lang.IllegalStateException:找不到模板位置:类路径资源 [templates/](你是不是
lly 使用百里香?)
在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
在 org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:370)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1094)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:989)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
在 org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1014)
在 org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:957)
在 org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:855)
在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:480)
... 18 更多
引起:org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有最终java.util.Collection org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafDefaultConfiguration.templateResolvers;嵌套异常是 org.springframework.beans。
factory.BeanCreationException:创建名为“org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration”的bean时出错:调用init方法失败;嵌套异常是 java.lang.IllegalStateException:找不到模板位置:类
路径资源 [templates/] (你真的在使用 Thymeleaf 吗?)
在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:508)
在 org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289)
... 38 更多
原因:org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration”的bean时出错:调用init方法失败;嵌套异常是 java.lang.IllegalStateException:
找不到模板位置:类路径资源 [templates/](您真的在使用 Thymeleaf 吗?)
在 org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:407)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1545)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
在 org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:370)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1094)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:989)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
在 org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1014)
在 org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:909)
在 org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:855)
在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:480)
... 40 更多
引起:java.lang.IllegalStateException:找不到模板位置:类路径资源[模板/](你真的在使用Thymeleaf吗?)
在 org.springframework.util.Assert.state(Assert.java:385)
在 org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration.checkTemplateLocationExists(ThymeleafAutoConfiguration.java:87)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)
在 java.lang.reflect.Method.invoke(未知来源)
在 org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:349)
在 org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:300)
在 org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133)
... 61 更多
请建议知道我为什么会收到此错误,我需要将 Spring Boot 应用程序 jar 启动为 export->Runnable jar(因为我不能使用 maven 生成 jar),我不应该得到上述异常。
【问题讨论】:
-
引起:java.lang.IllegalStateException:找不到模板位置:类路径资源[templates/](你真的在使用Thymeleaf吗?)
-
Spring 尝试自动配置 Thymeleaf,这会导致错误。你不需要百里香,对吧?如果这是正确的,请尝试找出加载 Thymeleaf 的原因。 Spring 输出提到了一个调试标志,您应该尝试一下。
-
Spring Boot 需要 JAR 中的特定目录结构。 Maven 和 Gradle 插件会自动为您创建它,但是如果您自己创建 JAR,您必须确保它具有所需的结构。您可以在文档中找到有关该结构的更多信息:docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/…
-
如果遗留的 XML jars 有问题,如果你在启动时指定
-Djava.endorsed.dirs,你也许可以使用 maven build jar。
标签: java spring spring-boot spring-restcontroller