我在这里遇到类似的问题: Configuring jdbcRealm in context.xml
示例配置 - 我的领域嵌套在上下文中,因为我希望它特定于Web应用程序。
<Context>
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="9"
connectionName="username"
connectionPassword="password"
connectionURL="url"
driverName="com.ibm.db2.jcc.DB2Driver"
roleNameCol="PERMISSION"
userCredCol="PASSWORD"
userNameCol="USERID"
userRoleTable="ROLESTABLE"
userTable="USERSTABLE"/>
</Context>
解决方案是将驱动程序jar放入tomcat / lib文件夹。如果我把db2驱动程序jar放在该文件夹中就可以了。
但是,我想从application / WEB-INF / lib加载jar,这样我就不必对Tomcat安装进行更改了。罐子在那里,但验证者似乎找不到它。
谢谢!
答案 0 :(得分:0)
在摆弄后,我找到了解决方案。数据库是资源的,领域引用该资源而不是指定JDBCRealm本身。以下context.xml位于Web应用程序的META-INF文件夹中。
<Context>
<Resource name="jdbc/DBNAME"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
maxActive="25"
maxWait="30000"
username="USERNAME"
password="PASSWORD"
driverClassName="DRIVER"
url="URL"
removeAbandoned="true"
logAbandoned="true"
validationQuery="select * from test"
testOnBorrow="true"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="1800000"
/>
<Realm className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/DBNAME"
localDataSource="true"
roleNameCol="PERMISSION"
userCredCol="PASSWORD"
userNameCol="USERID"
userRoleTable="ROLESTABLE"
userTable="USERSTABLE"/>
</Context>
谢谢!