从WEB-INF / lib而不是tomcat / lib

时间:2015-11-05 20:04:01

标签: java tomcat jar jdbcrealm

我在这里遇到类似的问题: 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安装进行更改了。罐子在那里,但验证者似乎找不到它。

谢谢!

1 个答案:

答案 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>

谢谢!