Hibernate在执行AngularJS GET请求时引发服务器验证错误
如果我用Angular执行GET请求,我会得到500个错误Hibernate在执行AngularJS GET请求时引发服务器验证错误,angularjs,hibernate,postgresql,rest,Angularjs,Hibernate,Postgresql,Rest,如果我用Angular执行GET请求,我会得到500个错误 var listAll = function() { var requestUrl = baseUrl + "/employee/all"; return $http.get(requestUrl) .then(function(responseSuccess) { return responseSuccess.data; }, function(responseError) {
var listAll = function() {
var requestUrl = baseUrl + "/employee/all";
return $http.get(requestUrl)
.then(function(responseSuccess) {
return responseSuccess.data;
},
function(responseError) {
return responseError.data;
});
};
然后我调用输出函数:
service.output().then(suc,err);
问题是,在返回有效响应之前,我必须调用服务五到六次。在所有其他情况下,都会返回500错误,但以下情况除外:
java.sql.SQLException: Failed to validate a newly established connection.
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:811) ~[tomcat-jdbc-8.0.30.jar:na]
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:626) ~[tomcat-jdbc-8.0.30.jar:na]
at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:185) ~[tomcat-jdbc-8.0.30.jar:na]
at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127) ~[tomcat-jdbc-8.0.30.jar:na]
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:139) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
.
.
.
我使用PostgreSQL作为数据库和基于Spring的REST应用程序
您应该检查Java代码中是否缺少connection.close()语句。很可能存在连接泄漏,如果连接过期,它们会随机返回到池中并正常工作
从后端连接到数据库可能存在真正的问题。检查网络,确保一切正常
PostgreSQL可能配置的连接不够
解决方案是需要显式验证查询:
spring.datasource.validation-query=SELECT 1
从那以后就没有出现过此错误。我已经编写了所有代码。我应该在哪里添加connection.close()
?我正在使用一个JpaRepository
扩展名。如果有任何帮助,我正在使用调用,比如repository.findOne()
,repository.findAll()
,repository.save()
。还刚刚打开了application.properties并找到了这个:spring.datasource.testOnBorrow=true
。这可能是问题吗?您好,现在这个问题似乎可以通过添加缺少的行spring.datasource.validation query=SELECT 1
来解决。如果再次出现错误,我将更新。