1

我在 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

4

1 回答 1

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

于 2018-09-28T16:06:34.507 回答