【发布时间】:2016-04-23 22:37:51
【问题描述】:
当我尝试使用 mvn spring-boot:run 启动服务器时出现此异常。我之前做了一个 mvn clean 。我无法想象为什么会发生这种情况。配置似乎是正确的。
liquibase.exception.DatabaseException: org.postgresql.util.PSQLException: This connection has been closed.
at liquibase.database.jvm.JdbcConnection.setAutoCommit(JdbcConnection.java:363) ~[liquibase-core-3.4.2.jar:na]
at liquibase.database.AbstractJdbcDatabase.close(AbstractJdbcDatabase.java:1176) ~[liquibase-core-3.4.2.jar:na]
at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:400) ~[liquibase-core-3.4.2.jar:na]
at com.mycompany.myapp.config.liquibase.AsyncSpringLiquibase.initDb(AsyncSpringLiquibase.java:63) ~[classes/:na]
at com.mycompany.myapp.config.liquibase.AsyncSpringLiquibase.lambda$afterPropertiesSet$31(AsyncSpringLiquibase.java:49) ~[classes/:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_60]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_60]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_60]
Caused by: org.postgresql.util.PSQLException: This connection has been closed.
at org.postgresql.jdbc2.AbstractJdbc2Connection.checkClosed(AbstractJdbc2Connection.java:851) ~[postgresql-9.4-1203-jdbc42.jar:9.4]
at org.postgresql.jdbc2.AbstractJdbc2Connection.setAutoCommit(AbstractJdbc2Connection.java:793) ~[postgresql-9.4-1203-jdbc42.jar:9.4]
at com.zaxxer.hikari.proxy.ConnectionProxy.setAutoCommit(ConnectionProxy.java:334) ~[HikariCP-2.4.1.jar:na]
at com.zaxxer.hikari.proxy.HikariConnectionProxy.setAutoCommit(HikariConnectionProxy.java) ~[HikariCP-2.4.1.jar:na]
at liquibase.database.jvm.JdbcConnection.setAutoCommit(JdbcConnection.java:361) ~[liquibase-core-3.4.2.jar:na]
... 7 common frames omitted
这是我的应用程序-dev.yaml:
# ===================================================================
# Standard Spring Boot properties.
# Full reference is available at:
# http://docs.spring.io/spring-boot/docs/current/reference/html/common- application-properties.html
# ===================================================================
spring:
profiles:
active: dev
devtools:
restart:
enabled: true
livereload:
enabled: false # we use Grunt + BrowserSync for livereload
datasource:
driver-class-name: org.postgresql.ds.PGSimpleDataSource
url: jdbc:postgresql://localhost:3306/bowl
name:
username: postgres
password: root
jpa:
database-platform: com.mycompany.myapp.domain.util.FixedPostgreSQL82Dialect
database: POSTGRESQL
show_sql: true
properties:
hibernate.cache.use_second_level_cache: true
hibernate.cache.use_query_cache: false
hibernate.generate_statistics: true
hibernate.cache.region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
data:
elasticsearch:
cluster-name:
cluster-nodes:
properties:
path:
logs: target/elasticsearch/log
data: target/elasticsearch/data
mail:
host: localhost
messages:
cache-seconds: 1
thymeleaf:
cache: false
liquibase:
contexts: dev
server:
port: 8080
# ===================================================================
# JHipster specific properties
# ===================================================================
jhipster:
cache: # Hibernate 2nd level cache, used by CacheConfiguration
timeToLiveSeconds: 3600
ehcache:
maxBytesLocalHeap: 16M
mail: # specific JHipster mail property, for standard properties see MailProperties
from: test@localhost
metrics: # DropWizard Metrics configuration, used by MetricsConfiguration
jmx.enabled: true
spark:
enabled: false
host: localhost
port: 9999
graphite:
enabled: false
host: localhost
port: 2003
prefix: test
这是我的 application.yaml:
spring:
jpa:
open-in-view: false
hibernate:
ddl-auto: none
naming-strategy: org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy
messages:
basename: classpath:/i18n/messages
mvc:
favicon:
enabled: false
thymeleaf:
mode: XHTML
security:
basic:
enabled: false
# ===================================================================
# JHipster specific properties
# ===================================================================
jhipster:
async:
corePoolSize: 2
maxPoolSize: 50
queueCapacity: 10000
#cors: #By default CORS are not enabled. Uncomment to enable.
#allowed-origins: "*"
#allowed-methods: GET, PUT, POST, DELETE, OPTIONS
#allowed-headers: "*"
#exposed-headers:
#allow-credentials: true
#max-age: 1800
mail:
from: test@localhost
security:
rememberme:
# security key (this key should be unique for your application, and kept secret)
key: 7ba7d54b8c54ee10147cf46baa898c4cb7b4a597
swagger:
title: test API
description: test API documentation
version: 0.0.1
termsOfServiceUrl:
contact:
license:
licenseUrl:
【问题讨论】:
-
我在这个问题上搞砸了三天。我什至用 mySQL 尝试过,但在那里我遇到了类似的错误。我切换了数据源驱动程序并尝试了多种方言。我无法想象为什么会发生此异常。配置是 Jhipster 原始的,除了 url 和 user/pw conf。我还重新安装了几次 Jhipster。
-
这看起来像是一个环境问题,因为我们(显然)在示例项目中没有这种问题。您可以尝试在github.com/jhipster/jhipster-devbox 使用我们的“devbox”吗?它默认使用 MySQL,但你也可以安装 Postgresql。
-
driver-class-name: org.postgresql.ds.PGSimpleDataSource可能是个问题。使用 spring boot,您无需指定驱动程序(它从数据库 url 和类路径中计算出来)。尝试删除此行 -
感谢您的意见。我会试试这个。
-
好的,看起来我的实体文件导致了错误。但是,它们不会在生成器中引发错误。我想在这种情况下我应该为这个问题提出一个新问题?
标签: postgresql maven spring-mvc spring-boot jhipster