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 の接続の詳細は次のようになります。

  • context.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" />
    

私が見る1つの観察は以下の通りです:

tomcat7 には、「lib」フォルダに「tomcat-jdbc.jar」というデフォルトの jdbc ドライバが付属しています。しかし、私のアプリではかなり長い間 spring-jdbc.jar を使用しています。

クラス内で競合が発生しないように、それぞれを削除しようとしましたが、役に立ちませんでした。

tomcat6 は、同じ「context.xml」と「server.xml」、および spring-jdbc.jar で正常に動作します。

これは tomcat7 移行の妨げになっているため、ご協力をお願いいたします。さらに詳細が必要な場合はお知らせください。

==べんき

4

1 に答える 1

0

ああ、ゴーシュ、問題を突き止めました。

作成された setenv.sh スクリプトには、上記のエラーで作成された「ORACLE_HOME」パスが設定されていませんでした。また、私が init スクリプトを使用していたので、必要な基本的な ENV 変数のみをロードし、setenv.sh スクリプトによって設定された tomcat を開始および停止していました。

現在、すべてが正常に機能しています。

于 2012-11-30T09:50:25.550 に答える