0

Tomcat で Java ベースの Web アプリケーションを使用しています。これを使用して、アプリケーションを Oracle に接続します。

<Resource name="jdbc/conn" auth="Container" type="oracle.jdbc.pool.OracleDataSource" driverClassName="oracle.jdbc.driver.OracleDriver" factory="oracle.jdbc.pool.OracleDataSourceFactory" url="jdbc:oracle:thin:@XXX.XXX.XXX.XXX:1521:XE" user="XXX" password="XXX" maxActive="100" maxIdle="30" maxWait="10000" scope="Shareable"/>

私はSQLServerで同じことをしようとしています:

<Resource name="jdbc/conn" auth="Container" type="com.microsoft.sqlserver.jdbc.SQLServerDataSource" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" factory="com.microsoft.sqlserver.jdbc.SQLServerDataSourceObjectFactory" url="jdbc:sqlserver://XXX.XXX.XXX.XXX:1433;databaseName=XXX" username="XXX" password="XXX" maxActive="100" maxIdle="30" maxWait="10000"/>

しかし、これはうまくいきません!

type="javax.sql.DataSource" を使用して両方の状況を管理できることはわかっていますが、OracleDataSource と SQLServerDataSource でデータソースをキャストする必要があります... Java コードは次のとおりです。

Context ctx = new InitialContext();
Object obj = ctx.lookup("java:comp/env/jdbc/conn");

私はこの例外を受け取ります:

    Unexpected exception resolving reference
com.microsoft.sqlserver.jdbc.SQLServerException: Riferimento DataSource non valido.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
    at com.microsoft.sqlserver.jdbc.SQLServerDataSourceObjectFactory.getObjectInstance(SQLServerDataSourceObjectFactory.java:37)
    at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:137)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)

助けてくれますか?

4

0 に答える 0