sql >> データベース >  >> RDS >> Oracle

WSJDBCConnectionは、タイプOraclejdbcConnectionのオブジェクトをラップしません

    これをWebSphereLibertyでテストしたところ、次のコードが機能しました。

    @Resource(lookup = "jdbc/oracle")
    private DataSource ds;
    
    // ...
    
    Connection conn = ds.getConnection();
    OracleConnection oracleConn = conn.unwrap(oracle.jdbc.OracleConnection.class);
    

    私のserver.xmlは次のようになります:

    <dataSource jndiName="jdbc/oracle">
        <jdbcDriver libraryRef="oracleLib"/>
        <properties.oracle URL="${jdbc.URL}" user="${jdbc.user}" password="${jdbc.password}"/>
    </dataSource>
    
    <library id="oracleLib">
        <fileset dir="${server.config.dir}/oracle"/>
    </library>
    
    <application location="myApp.war" >
        <classloader commonLibraryRef="oracleLib"/>
    </application>
    

    ここで注意すべき重要なことは、commonLibraryRefの使用です。 <classloader>で エレメント。 privateLibraryRefを使用する場合 アプリとサーバー定義のデータソースは分離されたクラスローダーを使用してOracleJDBCクラスをロードするため、機能しません。

    この回答が役に立たない場合は、server.xml構成と、DataSourceのインスタンスを取得する方法を使用して質問を更新してください。 。



    1. SQL Server(T-SQL)で現在の日付形式を変更する方法

    2. テキストファイルからmysqlデータベースにデータをインポートする方法

    3. 値が長すぎて文字が変化しない(N)

    4. DBaaSフェイルオーバーソリューションと手動リカバリセットアップの比較