这是我的servlet.xml文件
<GlobalNamingResources>
<Resource auth="Container"
driverClassName="oracle.jdbc.driver.OracleDriver"
initialSize="5"
maxActive="120"
maxIdle="5"
maxWait="5000"
name="jdbc/EPRT_DEV"
password="admin"
url="jdbc:oracle:thin:hr/password@192.168.178.83:1521:XE"
username="system"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml"
type="javax.sql.DataSource" />
</GlobalNamingResources>
<!--
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
-->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="jdbc/EPRT_DEV"/>
这是我的context.xml文件
<ResourceLink name="jdbc/EPRT_DEV"
global="jdbc/EPRT_DEV"
type="javax.sql.DataSource"/>
有什么想法吗?请帮帮我..
答案 0 :(得分:4)
首先,Tomcat没有识别出名为servlet.xml
的文件。我希望你的意思是CATALINA_BASE/conf/server.xml
。
其次,您的<Resource>
定义完全混乱:您需要阅读Tomcat documentation on Resource definitions。 MemoryUserDatabaseFactory
旨在读取由path
定义的<Resource>
属性指定的文件,但您似乎正在尝试使用Oracle数据库进行身份验证。
同样,您使用的是UserDatabaseRealm
(旨在与MemoryUserDatabaseRealm
配对),然后尝试将其连接到损坏的数据源。
如果您要使用Oracle,请从factory
定义中删除pathname
和<Resource>
属性,并将className
中的<Realm>
更改为org.apache.catalina.realm.DataSourceRealm
。也请阅读DataSourceRealm documentation,因为它的配置与您在此处的配置完全不同。
如果您需要重新发布,请包含您遇到的任何错误的完整堆栈跟踪,并编辑您的帖子以包含正确的详细信息,而不是从内存中执行所有操作。
答案 1 :(得分:0)
你们可能会写一些tomcat-users.xml中不允许的东西
之前我在“角色”中添加了管理员,我得到了同样的错误..我刚从tomcat-users.xml中删除了这些角色