我使用Spring Boot 2.1.1创建了一个项目,当我尝试将其抬起时,出现以下错误:
2018-12-10 19:23:14.837错误8096 --- [main] o.s.boot.SpringApplication:应用程序运行失败
java.lang.IllegalStateException:处理错误的条件 org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration.propertySourcesPlaceholderConfigurer 在 org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:64) 〜[spring-boot-autoconfigure-2.1.1.RELEASE.jar:2.1.1.RELEASE]在 org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:108) 〜[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:181) 〜[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:141) 〜[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:117) 〜[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:327) 〜[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:232) 〜[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:275) 〜[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:95) 〜[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:691) 〜[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:528) 〜[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) 的[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE] org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) 的[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE] org.springframework.boot.SpringApplication.run(SpringApplication.java:316) 的[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE] org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) 的[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE] org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) 的[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE] atuq.FrigorificoApplication.main(FrigorificoApplication.java:14) [classes /:na]原因:java.lang.IllegalStateException:无法执行 内省级 [org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration] 从ClassLoader [sun.misc.Launcher$AppClassLoader@73d16e93]中 org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:686) 〜[spring-core-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:583) 〜[spring-core-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:568) 〜[spring-core-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:626) 〜[spring-core-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) 〜[na:1.8.0_181]在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:721) 〜[spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:662) 〜[spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:630) 〜[spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1518) 〜[spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1023) 〜[spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]在 org.springframework.boot.autoconfigure.condition.BeanTypeRegistry.addBeanTypeForNonAliasDefinition(BeanTypeRegistry.java:195) 〜[spring-boot-autoconfigure-2.1.1.RELEASE.jar:2.1.1.RELEASE]在 org.springframework.boot.autoconfigure.condition.BeanTypeRegistry.addBeanTypeForNonAliasDefinition(BeanTypeRegistry.java:159) 〜[spring-boot-autoconfigure-2.1.1.RELEASE.jar:2.1.1.RELEASE]在 org.springframework.boot.autoconfigure.condition.BeanTypeRegistry.addBeanType(BeanTypeRegistry.java:152) 〜[spring-boot-autoconfigure-2.1.1.RELEASE.jar:2.1.1.RELEASE]在 org.springframework.boot.autoconfigure.condition.BeanTypeRegistry.updateTypesIfNecessary(BeanTypeRegistry.java:140) 〜[spring-boot-autoconfigure-2.1.1.RELEASE.jar:2.1.1.RELEASE]在 java.util.Iterator.forEachRemaining(Iterator.java:116)〜[na:1.8.0_181] 在 org.springframework.boot.autoconfigure.condition.BeanTypeRegistry.updateTypesIfNecessary(BeanTypeRegistry.java:135) 〜[spring-boot-autoconfigure-2.1.1.RELEASE.jar:2.1.1.RELEASE]在 org.springframework.boot.autoconfigure.condition.BeanTypeRegistry.getNamesForType(BeanTypeRegistry.java:97) 〜[spring-boot-autoconfigure-2.1.1.RELEASE.jar:2.1.1.RELEASE]在 org.springframework.boot.autoconfigure.condition.OnBeanCondition.collectBeanNamesForType(OnBeanCondition.java:298) 〜[spring-boot-autoconfigure-2.1.1.RELEASE.jar:2.1.1.RELEASE]在 org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:289) 〜[spring-boot-autoconfigure-2.1.1.RELEASE.jar:2.1.1.RELEASE]在 org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:278) 〜[spring-boot-autoconfigure-2.1.1.RELEASE.jar:2.1.1.RELEASE]在 org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchingBeans(OnBeanCondition.java:189) 〜[spring-boot-autoconfigure-2.1.1.RELEASE.jar:2.1.1.RELEASE]在 org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchOutcome(OnBeanCondition.java:160) 〜[spring-boot-autoconfigure-2.1.1.RELEASE.jar:2.1.1.RELEASE]在 org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47) 〜[spring-boot-autoconfigure-2.1.1.RELEASE.jar:2.1.1.RELEASE] ... 16 省略了常见的框架造成原因:java.lang.NoClassDefFoundError: javax / servlet / Filter在java.lang.Class.getDeclaredMethods0(本机 方法)〜[na:1.8.0_181]在 java.lang.Class.privateGetDeclaredMethods(Class.java:2701) 〜[na:1.8.0_181]在 java.lang.Class.getDeclaredMethods(Class.java:1975)〜[na:1.8.0_181] 在 org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:668) 〜[spring-core-5.1.3.RELEASE.jar:5.1.3.RELEASE] ... 38个常见框架 省略的原因:java.lang.ClassNotFoundException: javax.servlet.Filter位于 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 〜[na:1.8.0_181]在 java.lang.ClassLoader.loadClass(ClassLoader.java:424)〜[na:1.8.0_181] 在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:349) 〜[na:1.8.0_181]在 java.lang.ClassLoader.loadClass(ClassLoader.java:357)〜[na:1.8.0_181] ...省略了42个共同的框架
paso el pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>atuq</groupId>
<artifactId>frigorifico</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>frigorifico</name>
<description>Frigorifico Malargue</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.0</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
<type>jar</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
答案 0 :(得分:4)
如果您的POM中具有spring-boot-starter-tomcat的依赖项,请删除其作用域部分。
现有:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
新功能:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
答案 1 :(得分:0)
该错误很有帮助,因为它找不到所需的类javax.servlet.Filter
,而拥有此类的常见方法是通过这种依赖关系:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
最终导致org.apache.tomcat.embed:tomcat-embed-core
我们在本地看到了此信息,因为从Intellij运行Spring Boot应用程序时,在“运行/调试配置”中没有勾选“包含具有“已提供”作用域的依赖项”选项。
答案 2 :(得分:0)
尝试将其添加到pom.xml:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.0.1.RELEASE</version>
</dependency>
它帮助了我。
答案 3 :(得分:-1)
我认为这种依赖性:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
与此冲突:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<type>jar</type>
</dependency>
为什么需要最后一个?我认为您不需要它,因为您已经有了安全的入门软件,因此请将其删除。
答案 4 :(得分:-2)
我今天遇到了同样的问题。事实证明,该问题是由于主启动类未放在代码的最外层引起的。确保已在正确的位置定义了启动类。