0

SQL Server 2008 R2の場合、データベースに正常に接続できました。ただし、SQL Server 2012にアップグレードした後、Javaコードで次のエラーが発生します。使用しているアプリケーションサーバーはTomcat7です。

エラーは次のとおりです。

Jun 10, 2012 1:56:10 PM org.apache.naming.NamingContext lookup
WARNING: Unexpected exception resolving reference
com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "MyDB" requested by the login. The login failed.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
    at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246)
    at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:83)

context.xmlの接続文字列は

<Resource name="jdbc/theDB" type="javax.sql.DataSource" auth="Container"
            factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
            driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" initialSize="30"
            maxActive="100"
        url="jdbc:sqlserver://localhost:1433;databaseName=MyDB;integratedSecurity=true"
            />

以下はweb.xmlにあります

<resource-ref>
<description>My Database</description>
<res-ref-name>jdbc/theDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

Eclipseでデータ接続を開くことでデータベースに正常に接続できます。実際、生成される接続文字列は、上記で再現したcontext.xmlのURLと同じです。

誰かアイデアはありますか?

ありがとうございました!

4

1 に答える 1

0

アプリケーションサーバーを実行しているユーザーがデータベースに対する十分な権限を持っていることを確認してください。

于 2012-06-14T12:45:57.367 に答える