【问题标题】:DB connection from Sun webserver来自 Sun 网络服务器的数据库连接
【发布时间】:2010-05-18 05:00:07
【问题描述】:

由独立代码建立的数据库连接与由部署在 sun java web 服务器中的 web 应用程序建立的数据库连接有什么区别。

用于连接数据库的代码,单独运行时db连接成功。但是部署时我的 Web 应用程序中的相同代码无法建立数据库连接。数据库通过VPN远程访问。

公共 OracleConnectionPoolWrapper(DBInfo 数据源) 抛出 SQLException { OracleConnectionCacheImpl ora; OracleConnectionPoolDataSource oracleConnectionPoolDataSource = new OracleConnectionPoolDataSource(); oracleConnectionPoolDataSource.setURL(dataSource.getConnectionString()); oracleConnectionPoolDataSource.setUser(dataSource.getUserName()); oracleConnectionPoolDataSource.setPassword(dataSource.getPassword()); ora = new OracleConnectionCacheImpl(oracleConnectionPoolDataSource); ora.setMaxLimit(dataSource.getPoolSize()); ora.setCacheScheme(1); 连接 con = ora.getConnection(); }

上面是我的应用程序中的一段代码,用于连接通过 VPN 访问的数据库。当建立VPN连接时,这段代码作为独立程序运行时,它成功连接到数据库。但是在 Sun java web 服务器中部署具有相同代码并且已建立 VPN 连接的 web 应用程序无法连接到数据库。我收到以下错误

Io 异常:网络适配器无法建立连接 [15/Feb/2010:16:31:31] 警告(4308):CORE3283:stderr:java.sql.SQLException:Io 异常:网络适配器无法建立连接 [15/Feb/2010:16:31:31] 警告 (4308): CORE3283: stderr: at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)

【问题讨论】:

  • 请详细说明“不能”。请从开发人员(代码)的角度进行详细说明,而不是从最终用户的角度。在编码级别究竟发生了什么?在编码级别not到底发生了什么?如果有任何异常/消息/堆栈跟踪,请编辑您的问题以原样复制粘贴。

标签: java database-connection database


【解决方案1】:

您应该使用数据源来获取 Web 应用程序下的数据库连接。如果您希望代码独立运行并在 Web 应用程序中运行,您可以将连接的访问​​权限委托给不同的策略。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    相关资源
    最近更新 更多