Spring Boot,OpenShift3 JPA和日志记录问题

时间:2018-09-20 09:25:01

标签: spring spring-mvc spring-boot spring-data-jpa openshift-3

我已经在OpenShift平台上部署了一个简单的Spring Boot Web应用程序。

一切看起来不错,并且可以在/上访问该应用程序,但是一旦我引入了我的第一个JPA实体,我就会被重定向到whitelabel错误页面。

我所做的是我为所有异常实现了一个全局错误处理程序,以希望捕获该错误,但是我认为这搞乱了整个应用程序的部署,但是没有捕获到该错误。

一旦我删除实体,应用程序就会备份,错误处理程序会处理我抛出的要测试的异常。

我认为与数据库的连接很好,因为我发现创建了与我的实体关联的表。(PostgreSQL和mysql测试)。

问题是我没有太多需要处理的东西,因为日志看起来很整洁,没有任何异常。

有人知道如何让Spring Boot将日志放到运行它的Pod上吗?我以前在我的Pod上安装了一个持久性存储,让Spring将日志重定向到该Pod上的文件。最终创建了0kb的文件。

我有两个问题:

  • 如何正确记录OS3上部署的Spring Boot应用程序?
  • 欢迎您提出有关实体问题的想法。我希望在修复日志后能够提供更多信息。

该应用程序的Github: https://github.com/iaissaoui/boot-app

1 个答案:

答案 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类之下。 但是,我仍然不知道为什么指定软件包会引起麻烦。