Tomcat JNDI数据源连接到具有类似名称的错误数据库

时间:2015-03-11 18:17:34

标签: java sql-server tomcat jndi tomcat8

我正在使用Apache Tomcat 8和SQL Server 2005开发Web应用程序。

我必须重复"我的数据库用于创建在同一服务器上运行的并行Q& A环境。我做了一个数据库备份,并使用名称略有不同的备份创建了一个新的数据库;原始数据库的名称是" TSIM "并且第二个数据库的名称是" TSIMQA "虽然它们在内部是相同的。

当我尝试连接到" TSIMQA "从以下位置更改项目的 context.xml 文件中的 databaseName 资源:

<Context antiJARLocking="true" path="/TSIMQA">
<Resource
  auth="Container" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
  maxActive="20" maxIdle="10" maxWait="5000" name="connpool"
  type="javax.sql.DataSource" url="jdbc:sqlserver://localhost:1433;databaseName=TSIM;user=***;password=***"/></Context>

为:

<Context antiJARLocking="true" path="/TSIMQA">
<Resource
  auth="Container" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
  maxActive="20" maxIdle="10" maxWait="5000" name="connpool"
  type="javax.sql.DataSource" url="jdbc:sqlserver://localhost:1433;databaseName=TSIMQA;user=***;password=***"/></Context>

这里是我获得连接的java类:

public static Connection getConnection(){
    try{
        Context initContext;
        initContext = new InitialContext();
        DataSource ds = (DataSource) initContext.lookup("java:/comp/env/connpool");
        return ds.getConnection();
    }catch(NamingException | SQLException e){
        Logger.getLogger(DBConn.class.getName()).log(Level.SEVERE, null, e);
    }
    return null;
}

它连接起来似乎一切正常,但事实上它仍然连接到&#34; TSIM &#34;。

我尝试过的是重新启动Tomcat,重新编译并重新上传战争,更改qa数据库名称,但它会一直连接到原始数据库。

我知道它没有提供context.xml文件中提供的信息,因为当我删除用户或密码时,我从连接中获得异常。

我已尝试将数据库名称更改为&#34; QATSIM &#34;希望得到一些关于发生了什么的线索,但它的行为方式相同。

我正在使用Netbeans来构建应用程序。 (我还没有完成任何数据库的设置,所以我不认为它试图指定任何默认数据源替换context.xml文件中的数据源。)

非常感谢您的时间并原谅我的英语限制。

0 个答案:

没有答案