3

这是我的 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"/>

有什么想法吗?请帮我 ..

4

2 回答 2

4

首先,没有servlet.xmlTomcat 可以识别的文件。我希望你的意思CATALINA_BASE/conf/server.xml

其次,您的<Resource>定义完全混乱:您需要阅读有关资源定义的 Tomcat 文档MemoryUserDatabaseFactory旨在读取定义path属性指定的文件<Resource>,但您似乎正在尝试使用 Oracle 数据库进行身份验证。

同样,您正在使用 a UserDatabaseRealm(旨在与MemoryUserDatabaseRealm)' 配对,然后尝试将其连接到损坏的 DataSource。

如果您想使用 Oracle,请从您的定义中删除factoryandpathname属性并将您的in更改为. 也请阅读DataSourceRealm 文档,因为它的配置与您在此处的配置非常不同。<Resource>className<Realm>org.apache.catalina.realm.DataSourceRealm

如果您必须重新发布,请包含您遇到的任何错误的完整堆栈跟踪,并编辑您的帖子以包含正确的详细信息,而不是从记忆中做所有事情。

于 2013-01-05T14:29:00.433 回答
1

可能你们会写一些在 tomcat-users.xml 中不允许的东西

早些时候我在“角色”中添加了管理员,我得到了同样的错误..我刚刚从 tomcat-users.xml 中删除了该角色

于 2013-05-03T10:38:44.067 回答