gpt4 book ai didi

java - 从 WEB-INF/lib 而不是 tomcat/lib 加载 JDBCRealm 驱动程序 jar

转载 作者:行者123 更新时间:2023-11-28 23:28:49 24 4
gpt4 key购买 nike

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

谢谢!

最佳答案

经过一番摸索,我找到了解决办法。数据库是资源化的,领域引用该资源而不是指定 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>

谢谢!

关于java - 从 WEB-INF/lib 而不是 tomcat/lib 加载 JDBCRealm 驱动程序 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33553751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com