【发布时间】:2018-08-06 05:19:12
【问题描述】:
我正在开发我的第一个 springboot 应用程序。我正在写一本书,我一步一步地做每件事,当我运行程序时,几乎没有我无法修复的错误。可能它们很小,但我仍在努力解决问题,这就是我在这里的原因。
WebstoreappApplication:
package com.exovsky.webstoreapp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class WebstoreappApplication {
public static void main(String[] args) {
SpringApplication.run(WebstoreappApplication.class, args);
}
}
HomeController:
package com.exovsky.webstoreapp.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HomeController {
@RequestMapping("/")
public String welcome(Model model) {
model.addAttribute("greeting", "Witaj w sklepie internetowym!");
model.addAttribute("tagline", "Wyjątkowym i jedynym sklepie
internetowym");
return "welcome";
}
}
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>
<groupId>com.exovsky</groupId>
<artifactId>webstoreapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>webstoreapp</name>
<description>webapp project in springboot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<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-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.properties:
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
错误:
2018-02-26 16:55:08.567 INFO 9756 --- [main] cewebstoreapp.WebstoreappApplication:在 PID 9756 的 eXovskyPC 上启动 WebstoreappApplication(C:\Users\eXovsky\Desktop\Programming\Projekty\webstoreapp\target\classes 已启动通过 eXovsky 在 C:\Users\eXovsky\Desktop\Programming\Projekty\webstoreapp)
2018-02-26 16:55:08.567 INFO 9756 --- [main] c.e.webstoreapp.WebstoreappApplication:没有活动配置文件集,回退到默认配置文件:默认
2018-02-26 16:55:08.568 调试 9756 --- [main] os.boot.SpringApplication:加载源类 com.exovsky.webstoreapp.WebstoreappApplication
2018-02-26 16:55:08.594 DEBUG 9756 --- [main] osbccConfigFileApplicationListener:加载配置文件'file:/C:/Users/eXovsky/Desktop/Programming/Projekty/webstoreapp/target/classes/application.properties '(类路径:/application.properties)
2018-02-26 16:55:08.594 DEBUG 9756 --- [main] osbccConfigFileApplicationListener:跳过(空)配置文件'file:/C:/Users/eXovsky/Desktop/Programming/Projekty/webstoreapp/target/classes/配置文件默认的 application.properties' (classpath:/application.properties)
2018-02-26 16:55:08.598 INFO 9756 --- [main] ationConfigEmbeddedWebApplicationContext:刷新 org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@6ce86ce1:启动日期 [2018 年 2 月 26 日星期一 16:55:08 GMT];上下文层次结构的根
2018-02-26 16:55:08.599 调试 9756 --- [main] ationConfigEmbeddedWebApplicationContext:org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@6ce86ce1 的 Bean 工厂:org.springframework.beans.factory.support.DefaultListableBeanFactory@44e3a2b2 :定义bean [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context。 annotation.internalPersistenceAnnotationProcessor,org.springframework.context.event.internalEventListenerProcessor,org.springframework.context.event.internalEventListenerFactory,webstoreappApplication];工厂层次结构的根
警告:发生了非法反射访问操作
警告:org.springframework.cglib.core.ReflectUtils$1 的非法反射访问(file:/C:/Users/eXovsky/.m2/repository/org/springframework/spring-core/4.3.14.RELEASE/spring-core- 4.3.14.RELEASE.jar) 到方法 java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
警告:请考虑将此报告给 org.springframework.cglib.core.ReflectUtils$1
的维护者 警告:使用 --illegal-access=warn 启用对进一步非法反射访问操作的警告
警告:所有非法访问操作将在未来版本中被拒绝
2018-02-26 16:55:09.314 INFO 9756 --- [main] trationDelegate$BeanPostProcessorChecker:[org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$ 类型的 Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' $e6b32090] 不符合被所有 BeanPostProcessor 处理的条件(例如:不符合自动代理的条件)
2018-02-26 16:55:09.333 调试 9756 --- [main] ationConfigEmbeddedWebApplicationContext:无法找到名为“messageSource”的 MessageSource:使用默认值 [org.springframework.context.support.DelegatingMessageSource@2d0ecb24]
2018-02-26 16:55:09.333 调试 9756 --- [main] ationConfigEmbeddedWebApplicationContext:无法找到名为“applicationEventMulticaster”的 ApplicationEventMulticaster:使用默认 [org.springframework.context.event.SimpleApplicationEventMulticaster@4d654825]
2018-02-26 16:55:09.522 调试 9756 --- [main] .t.TomcatEmbeddedServletContainerFactory:代码存档:C:\Users\eXovsky.m2\repository\org\springframework\boot\spring-boot\1.5.10 .RELEASE\spring-boot-1.5.10.RELEASE.jar
2018-02-26 16:55:09.522 调试 9756 --- [main] .t.TomcatEmbeddedServletContainerFactory:代码存档:C:\Users\eXovsky.m2\repository\org\springframework\boot\spring-boot\1.5.10 .RELEASE\spring-boot-1.5.10.RELEASE.jar
2018-02-26 16:55:09.523 调试 9756 --- [main] .t.TomcatEmbeddedServletContainerFactory:文档根目录:C:\Users\eXovsky\Desktop\Programming\Projekty\webstoreapp\src\main\webapp
2018-02-26 16:55:09.540 INFO 9756 --- [main] s.b.c.e.t.TomcatEmbeddedServletContainer:Tomcat 使用端口初始化:8080 (http)
2018-02-26 16:55:09.546 INFO 9756 --- [main] o.apache.catalina.core.StandardService:启动服务 [Tomcat]
2018-02-26 16:55:09.546 INFO 9756 --- [main] org.apache.catalina.core.StandardEngine:启动 Servlet 引擎:Apache Tomcat/8.5.27
2018-02-26 16:55:09.591 INFO 9756 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]:初始化 Spring 嵌入式 WebApplicationContext
2018-02-26 16:55:09.591 INFO 9756 --- [ost-startStop-1] os.web.context.ContextLoader:根 WebApplicationContext:初始化在 997 毫秒内完成
2018-02-26 16:55:09.633 调试 9756 --- [ost-startStop-1] o.s.b.w.s.ServletContextInitializerBeans:添加了现有的 Servlet 初始化程序 bean 'dispatcherServletRegistration'; order=2147483647,资源=类路径资源 [org/springframework/boot/autoconfigure/web/DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration.class]
2018-02-26 16:55:09.706 调试 9756 --- [ost-startStop-1] o.s.b.w.s.ServletContextInitializerBeans:为 bean 'metricsFilter' 创建了过滤器初始化程序; order=-2147483648,resource=类路径资源[org/springframework/boot/actuate/autoconfigure/MetricFilterAutoConfiguration.class]
2018-02-26 16:55:09.706 调试 9756 --- [ost-startStop-1] o.s.b.w.s.ServletContextInitializerBeans:为 bean 'characterEncodingFilter' 创建了过滤器初始化程序; order=-2147483648,resource=类路径资源[org/springframework/boot/autoconfigure/web/HttpEncodingAutoConfiguration.class]
2018-02-26 16:55:09.706 调试 9756 --- [ost-startStop-1] o.s.b.w.s.ServletContextInitializerBeans:为 bean 'hiddenHttpMethodFilter' 创建了过滤器初始化程序; order=-10000,资源=类路径资源[org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration.class]
2018-02-26 16:55:09.706 调试 9756 --- [ost-startStop-1] o.s.b.w.s.ServletContextInitializerBeans:为 bean 'httpPutFormContentFilter' 创建了过滤器初始化程序; order=-9900,资源=类路径资源[org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration.class]
2018-02-26 16:55:09.706 调试 9756 --- [ost-startStop-1] o.s.b.w.s.ServletContextInitializerBeans:为 bean 'requestContextFilter' 创建了过滤器初始化程序; order=-105,资源=类路径资源[org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]
2018-02-26 16:55:09.706 调试 9756 --- [ost-startStop-1] o.s.b.w.s.ServletContextInitializerBeans:为 bean 'webRequestLoggingFilter' 创建了过滤器初始化程序; order=2147483637,资源=类路径资源 [org/springframework/boot/actuate/autoconfigure/TraceWebFilterAutoConfiguration.class]
2018-02-26 16:55:09.706 调试 9756 --- [ost-startStop-1] o.s.b.w.s.ServletContextInitializerBeans:为 bean 'applicationContextIdFilter' 创建了过滤器初始化程序; order=2147483647,资源=类路径资源 [org/springframework/boot/actuate/autoconfigure/EndpointWebMvcAutoConfiguration$ApplicationContextFilterConfiguration.class]
2018-02-26 16:55:09.710 信息 9756 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean:映射 servlet:'dispatcherServlet' 到 [/]
2018-02-26 16:55:09.712 信息 9756 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:“metricsFilter”到:[/]
2018-02-26 16:55:09.712 信息 9756 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:'characterEncodingFilter' 到:[/]
2018-02-26 16:55:09.712 信息 9756 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:'hiddenHttpMethodFilter' 到:[/]
2018-02-26 16:55:09.713 INFO 9756 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:“httpPutFormContentFilter”到:[/]
2018-02-26 16:55:09.713 信息 9756 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:'requestContextFilter' 到:[/]
2018-02-26 16:55:09.713 信息 9756 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:'webRequestLoggingFilter' 到:[/]
2018-02-26 16:55:09.713 INFO 9756 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:'applicationContextIdFilter' 到:[/*]
2018-02-26 16:55:09.719 调试 9756 --- [ost-startStop-1] o.s.b.w.f.OrderedRequestContextFilter:初始化过滤器“requestContextFilter”
2018-02-26 16:55:09.720 调试 9756 --- [ost-startStop-1] o.s.b.w.f.OrderedRequestContextFilter:过滤器“requestContextFilter”配置成功
2018-02-26 16:55:09.720 调试 9756 --- [ost-startStop-1] o.s.b.w.f.ApplicationContextHeaderFilter:初始化过滤器“applicationContextIdFilter”
2018-02-26 16:55:09.720 调试 9756 --- [ost-startStop-1] o.s.b.w.f.ApplicationContextHeaderFilter:过滤器“applicationContextIdFilter”配置成功
2018-02-26 16:55:09.720 调试 9756 --- [ost-startStop-1] .s.b.w.f.OrderedHttpPutFormContentFilter:初始化过滤器“httpPutFormContentFilter”
2018-02-26 16:55:09.720 调试 9756 --- [ost-startStop-1] .s.b.w.f.OrderedHttpPutFormContentFilter:过滤器“httpPutFormContentFilter”配置成功
2018-02-26 16:55:09.720 调试 9756 --- [ost-startStop-1] o.s.b.w.f.OrderedHiddenHttpMethodFilter:初始化过滤器“hiddenHttpMethodFilter”
2018-02-26 16:55:09.721 调试 9756 --- [ost-startStop-1] o.s.b.w.f.OrderedHiddenHttpMethodFilter:过滤器“hiddenHttpMethodFilter”配置成功
2018-02-26 16:55:09.721 调试 9756 --- [ost-startStop-1] o.s.b.w.f.OrderedCharacterEncodingFilter:初始化过滤器“characterEncodingFilter”
2018-02-26 16:55:09.721 调试 9756 --- [ost-startStop-1] o.s.b.w.f.OrderedCharacterEncodingFilter:过滤器“characterEncodingFilter”配置成功
2018-02-26 16:55:09.721 调试 9756 --- [ost-startStop-1] o.s.b.a.trace.WebRequestTraceFilter:初始化过滤器“webRequestLoggingFilter”
2018-02-26 16:55:09.721 调试 9756 --- [ost-startStop-1] o.s.b.a.trace.WebRequestTraceFilter:过滤器“webRequestLoggingFilter”配置成功
2018-02-26 16:55:09.721 调试 9756 --- [ost-startStop-1] o.s.b.a.autoconfigure.MetricsFilter:初始化过滤器“metricsFilter”
2018-02-26 16:55:09.721 调试 9756 --- [ost-startStop-1] o.s.b.a.autoconfigure.MetricsFilter:过滤器“metricsFilter”配置成功
2018-02-26 16:55:09.728 WARN 9756 --- [main] ationConfigEmbeddedWebApplicationContext:在上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“org.springframework”的 bean 时出错。 boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration':通过构造函数参数0表示的不满足的依赖关系;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“javax.sql.DataSource”类型的合格 bean 可用:预计至少有 1 个有资格作为自动装配候选者的 bean。依赖项注释:{}
2018-02-26 16:55:09.729 INFO 9756 --- [main] o.apache.catalina.core.StandardService:停止服务 [Tomcat]
2018-02-26 16:55:09.737 调试 9756 --- [main] .b.l.ClasspathLoggingApplicationListener:应用程序无法使用类路径启动:未知
2018-02-26 16:55:09.747 调试 9756 --- [main] utoConfigurationReportLoggingInitializer:在此处输入代码
2018-02-26 16:55:09.818 错误 9756 --- [主] o.s.b.d.LoggingFailureAnalysisReporter:
应用程序启动失败
说明:
org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration 中构造函数的参数 0 需要一个无法找到的“javax.sql.DataSource”类型的 bean。
- 未加载 Bean 方法“dataSource”,因为 @ConditionalOnProperty (spring.datasource.jndi-name) 未找到属性“jndi-name”
- 未加载 Bean 方法“dataSource”,因为 @ConditionalOnBean(类型:org.springframework.boot.jta.XADataSourceWrapper;SearchStrategy:all)没有找到任何 bean
行动:
考虑重新审视上述条件或在配置中定义“javax.sql.DataSource”类型的 bean。
【问题讨论】:
-
该错误抱怨缺少数据源。你定义了一个吗?为什么要在属性中明确禁用 DataSourceAutoConfiguration?
-
@JB 我在属性中禁用 DataSourceAutoConfiguration 因为我有其他错误:2018-02-26 17:48:28.063 ERROR 3172 --- [main] osbdLoggingFailureAnalysisReporter:******* * 应用程序启动失败 ******** 描述:无法确定数据库类型为 NONE 的嵌入式数据库驱动程序类 操作:如果您想要一个嵌入式数据库,请在类路径中放置一个受支持的数据库。如果您有要从特定配置文件加载的数据库设置,您可能需要激活它(当前没有配置文件处于活动状态)。进程以退出代码 1 结束
-
好吧,禁用它只会让事情变得更糟。阅读错误消息,阅读文档并解决问题。您需要选择要使用的数据库,确保 JDBC 驱动程序位于类路径中,并在需要时定义 DataSource。
-
好的,感谢您的帮助。我对 Spring Boot 很陌生,我觉得我不确定自己在做什么。
-
@MichaelJohnNowak 从这里开始:docs.spring.io/spring-boot/docs/current/reference/htmlsingle
标签: java spring-boot