我正在{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
答案 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目录后,问题就解决了