0

我的应用程序帖子移动到 tomcat7 时遇到问题。当我的应用程序尝试连接到“Oracle 11.2 DB”时,我看到了以下问题。

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-12541: TNS:no listener
)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:382)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:458)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:466)

server.xml 和 context.xml 中的连接详细信息如下所示。

  • 上下文.xml

ResourceLink global="jdbc/ctb" name="jdbc/ctb" type="oracle.jdbc.pool.OracleDataSource"/>

  • 服务器.xml

           <Resource name="jdbc/XXXX"
            auth="Container"
            scope="Shareable"
            type="javax.sql.DataSource"
            driverClassName="oracle.jdbc.OracleDriver"
            url="jdbc:oracle:oci8:@database"
            username="username" password="pwd"
            maxActive="30" maxIdle="3"
            removeAbandoned="true" removeAbandonedTimeout="60"
            testOnBorrow="true"
            validationQuery="select 1 from dual"
            logAbandoned="true" />
    

我看到的一个观察结果如下:

tomcat7 在名为“tomcat-jdbc.jar”的“lib”文件夹中带有一个默认的 jdbc 驱动程序。但是在我的应用程序中,我们使用了很长时间的 spring-jdbc.jar。

试图删除它们中的每一个以确保类中不会有任何冲突,但这对我没有帮助。

tomcat6 与相同的“context.xml”和“server.xml”以及 spring-jdbc.jar 一起工作得很好。

您的帮助将不胜感激,因为这已成为我们 tomcat7 迁移的障碍。如果您需要更多详细信息,请告诉我。

==本基

4

1 回答 1

0

哦,Ghosh,解决了这个问题。

创建的 setenv.sh 脚本从未为其设置在上述错误中创建的“ORACLE_HOME”路径。同样,当我使用 init 脚本时,正在启动和停止 tomcat,它只加载了所需的基本 ENV 变量并由 setenv.sh 脚本设置。

现在一切正常。

于 2012-11-30T09:50:25.550 回答