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 definitions に関する Tomcat<Resource>のドキュメントを読む必要があります。定義の属性で指定されたファイルを読み取ることを目的としていますが、認証に Oracle データベースを使用しようとしているようです。MemoryUserDatabaseFactorypath<Resource>

同様に、UserDatabaseRealm(とペアにすることを意図したMemoryUserDatabaseRealm)' を使用し、それを壊れた DataSource に接続しようとしています。

Oracle を使用する場合は、定義からfactoryおよびpathname属性を削除し、 を に変更します。ここにあるものとは構成が大きく異なるため、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 に答える