【发布时间】:2020-04-13 12:33:44
【问题描述】:
我有一个使用 jhipster 编写的 Spring Boot 应用程序,不久前交给我们的项目。它一直在 WebLogic 下运行,我正在将其移至 Tomcat9,为云迁移做好准备。我发现当我访问 actuator 的 "health" 时,应用程序返回 {"status" : "DOWN"} 并尝试连接到数据库。
我不希望它尝试连接。我尝试查看应用程序,但没有发现似乎导致此问题的设置。不过,我敢肯定它就在某个地方。
有人知道我应该去哪里看吗?
抛出以下异常:
2020-04-13 07:41:32.003 ERROR 16156 --- [nio-8080-exec-9] o.a.tomcat.jdbc.pool.ConnectionPool : Unable to create initial connections of pool.
java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566)
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:310)
at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:203)
at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:732)
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:664)
at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:479)
at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:154)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:118)
.
.
.
【问题讨论】:
-
为什么要部署在tomcat中?您是否考虑过使用嵌入式 tomcat,因为这是 JHipster 团队推荐的部署模型? JHipster 代码不会触发从执行器健康执行 db 的连接尝试,它看起来更像是 Simon Martinelli 所说的 Spring Boot 默认行为;见docs.spring.io/spring-boot/docs/current/reference/html/…
-
最终它将转到 OCP。部署到Tomcat只是为了确保它可以在Tomcat下运行,与它无关。下一步是将其放入 Docker,然后转到 Openshift。
-
Docker 和可执行 jar 配合得非常好
-
这只是我们流程中的一个步骤。 Docker 团队会做他们需要做的任何事情。我只需要让它在Tomcat中运行。 :-)
标签: spring-boot jhipster spring-boot-actuator