当前位置: 首页 > 知识库问答 >
问题:

带有jdbc池的tomcat上下文异常

裴嘉许
2023-03-14

我有一个web应用程序部署与Tomcat服务器,我有一个例外。

名称jdbc/_userright与上下文无关

<Resource name="jdbc/_UserRight" auth="Container"
    type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
    username="XXXXX" password="XXXXX" driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/userright" />
public class ConnectionUserRight {
private Connection cnx;
private ConnectionPool connectionPool;

public ConnectionUserRight() throws ConfigFileReaderException, IOException,
        SQLException {
    connectionPool = new ConnectionPool();
}

public Connection getCnx() throws SQLException, NamingException {
    if (null == this.cnx) {
        this.cnx = connectionPool.getConnection("jdbc/_UserRight");
    } else {
        // Connexion already open
    }

    return cnx;
}

public void closeCnx() {
    connectionPool.closeConnection(this.cnx);
    this.cnx = null;
}
}

共有1个答案

柳景胜
2023-03-14

看起来您的connectionPool只是在没有上下文的情况下创建的。试试-

Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
this.cnx = (DataSource) envCtx.lookup("jdbc/_UserRight").getConnection();
 类似资料:
  • Tomcat JDBC连接池提供了几个测试连接的选项。我觉得更有趣的两个是和。 首先,我认为是最好的选择,因为它基本上是在将连接提供给应用程序之前验证连接(最大频率由定义)。 但是过了一会儿,我意识到在使用连接之前测试它可能会影响应用程序的响应性。因此,我认为使用可以更有效,因为它在不使用连接时测试连接。 另一方面,我很惊讶不适用于,而且我并不真正理解的用途。

  • 我将在应用程序中使用tomcat-jdbc连接池。有两种方法可以添加它: 谢了。

  • 我们如何使用tomcat jdbc为同一个数据库配置两个不同的模式。我们是否需要为不同的模式创建两个不同配置的tomcat jdbc池连接,或者是否可以配置一个jdbc连接池,然后使用该连接池连接到两个不同的模式。

  • 我下载了Sprind SAML示例应用程序,它在本地tomcat中运行良好(针对SSOCircle)。然后我添加了一个新的SP,以指向我们公司的ADFS。我有几个问题,一个接一个地解决了。现在,我能够发送请求并获得有效的saml响应和断言令牌。但是,我得到以下错误消息: null

  • 我们有一个spring-boot应用程序,它使用嵌入式tomcat进行部署,并使用MySQL后端的默认tomcat-jdbc连接池,而没有为MySQL或tomcat端定制。 该应用程序有一些调度程序,它们主要在一天中的特定时间运行,即在昨天的最后一次cron运行和今天的第一次cron运行之间,有超过9个小时的间隙。然而,无论何时cron在早期运行,它都从未遇到过空闲连接问题。 现在我们看到一条错误

  • 我试图为一个我目前正在工作的项目制作一个简单的REST API,以简化我每天必须做的任务,当我到达托管它的地方时,我遇到了一个500服务器的错误。查看(tomcat home dir)/logs/localhost.2021-10-22.log中的日志,我发现了这个错误: 我在这里还有“不存在”的类的代码: 我检查了这个类是否确实存在,尝试重新构建这些类,将其导入为未编译的文件,并使用web.xm