DatasourceRealm Tomcat 6配置:名称jdbc未绑定在此Context中

时间:2013-05-22 18:14:15

标签: tomcat jdbcrealm

我正在{strong> Tomcat 6 中配置DatasourceRealm,以配置META-INF/context.xml中的所有内容。似乎已正确配置web.xml,因为登录提示正在显示。

有人可以帮忙吗?

context.xml中

<Context >
    <Resource name="jdbc/auth" description="authentication" type="javax.sql.DataSource"
        auth="Container" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
        maxActive="25" maxIdle="10" maxWait="10000"
        url="jdbc:sqlserver://SQLSERVER;databaseName=db;integratedSecurity=true"
        validationQuery="select 1" />
    <Realm className="org.apache.catalina.realm.DataSourceRealm"
        dataSourceName="jdbc/auth" userTable="WebUsers" userNameCol="username"
        userCredCol="password" userRoleTable="WebUserRoles" roleNameCol="role" 
        localDataSource="true"/>
</Context>

堆栈

javax.naming.NameNotFoundException: Name jdbc is not bound in this Context

2 个答案:

答案 0 :(得分:1)

我想出了这个问题。在$ CATALINA_BASE \ conf \ Catalina \ localhost下,有另一个[App Name] .xml文件较旧(它没有localDatasource =“true”标志)并且没有我发布的相同配置。我删除了该文件并重新部署了我的战争。之后它起作用了。

答案 1 :(得分:-1)

在进行部署时,我们遇到了如下所示的问题。我们首先假设它是setenv.sh和conpass文件的问题(这是合并属性文件和密码的地方),但是,在一次重新部署每个文件之后,我们将问题隔离到导致问题的MasterFile。更具体地说,问题本身就是一个错误的指标,因为编码或部署本身并没有什么问题。抛出该问题是因为我们在Tomcat webapps目录中有备份MasterFile目录。在这样做时,它创建了以下SEVERE错误:

SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'datasource' defined in ServletContext resource [/WEB-INF/beans.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Name [jdbc/CRIDB] is not bound in this Context. Unable to find [jdbc].
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338).

抛出的错误是因为我们有多个目录,当启动服务器时,tomcat试图读取每个目录。删除备份MasterFile目录后,问题就解决了