我已经在OpenShift平台上部署了一个简单的Spring Boot Web应用程序。
一切看起来不错,并且可以在/上访问该应用程序,但是一旦我引入了我的第一个JPA实体,我就会被重定向到whitelabel错误页面。
我所做的是我为所有异常实现了一个全局错误处理程序,以希望捕获该错误,但是我认为这搞乱了整个应用程序的部署,但是没有捕获到该错误。
一旦我删除实体,应用程序就会备份,错误处理程序会处理我抛出的要测试的异常。
我认为与数据库的连接很好,因为我发现创建了与我的实体关联的表。(PostgreSQL和mysql测试)。
问题是我没有太多需要处理的东西,因为日志看起来很整洁,没有任何异常。
有人知道如何让Spring Boot将日志放到运行它的Pod上吗?我以前在我的Pod上安装了一个持久性存储,让Spring将日志重定向到该Pod上的文件。最终创建了0kb的文件。
我有两个问题:
该应用程序的Github: https://github.com/iaissaoui/boot-app
答案 0 :(得分:0)
我回来对这个问题做了部分回答:
我终于可以使用JPA Repo并将实体保存到数据库中。许多在线帖子所建议的问题似乎与我使用的注释有关。
这是我的项目结构:
+---java
| \---bootwildfly
| | Application.java
| |
| \---app
| | GlobalExceptionHandler.java
| |
| +---controller
| | WildFlyController.java
| |
| +---model
| | AppUser.java
| |
| \---repo
| AppUserRepo.java
|
+---resources
| application.properties
|
\---webapp
\---WEB-INF
errorpage.jsp
slash.jsp
我最初在Spring Boot App主类中使用@ComponentScan
和@EnableJpaRepositories
:
@ComponentScan("bootwildfly.app.model")
@EnableJpaRepositories("bootwildfly.app.repo")
我注意到指定确切的软件包是导致此问题的原因,所以我切换到简单的批注:
@ComponentScan
@EnableJpaRepositories
在这种情况下,我知道它会起作用,因为我的软件包在App类之下。 但是,我仍然不知道为什么指定软件包会引起麻烦。