执行AngularJS GET请求时,Hibernate会引发服务器验证错误

时间:2016-02-24 12:23:51

标签: 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) {
        return responseError.data;
    });
};

然后我调用输出函数:

service.output().then(suc,err);

问题是,在返回有效响应之前,我必须调用service五到六次。所有其他时间,返回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应用程序。

2 个答案:

答案 0 :(得分:0)

  1. 您应该检查Java代码中缺少connection.close()语句。很可能存在连接泄漏,如果连接过期,它们会随机返回到池中并且可以正常工作。

  2. 从后端到数据库的连接可能存在真正的问题。检查网络以确保一切正常。

  3. PostgreSQL可能配置的连接不足。

答案 1 :(得分:0)

解决方案是需要显式验证查询:

<a class="status " href=""></a>

自那以来没有产生这个错误。