Eclipse:必须声明元素类型 "Context"

Eclipse : Element type "Context" must be declared

我正在使用 'context.xml' 在 eclipse 上使用 JDBC 创建连接池。 它继续说 - 必须声明元素类型 "Resource"。 - 必须声明元素类型 "Context"。 - 必须声明元素类型 "WatchedResource"。

同样的代码昨天运行得很好。 我刚刚在学校的 PC 上导入了项目。 所有其他不使用连接池的文件仍然可以正常运行。 我使用 Tomcat 版本 9.0

我复制了昨天输入的代码,保存为文本文件。 我删除了 'context.xml' 文件然后重新创建。 它仍然不起作用。 我在 google 上搜索并堆叠 Over Flow 以了解是否有人遇到同样的问题,不幸的是我找不到任何答案。

有没有人可以帮助我?

这是我输入的 xml 代码。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE context>
<Context path="/" docBase="Webprj" reloadable="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource
name="jdbc/Oracle"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:xe"
username="sijeune" password="oracle"
maxActive="20" maxIdle="10" maxWait="-1"/>
</Context>

Error messages appear here

我的 xml 文件的根目录是 'C:\Users27\Java\GroupStudy\Webprj\WebContent\META-INF\context.xml'

提前致谢!

我不知道你为什么要在项目中单独创建context.xml

Tomcat conf 目录中已有 context.xml 文件。只需在 context.xml

中添加数据源

来自 Tomcat 9 JNDI-Datasource Documentation :

只需在其中添加您的数据源。

    <?xml version="1.0" encoding="UTF-8"?>
    <!--
      Licensed to the Apache Software Foundation (ASF) under one or more
      contributor license agreements.  See the NOTICE file distributed with
      this work for additional information regarding copyright ownership.
      The ASF licenses this file to You under the Apache License, Version 2.0
      (the "License"); you may not use this file except in compliance with
      the License.  You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
    -->
    <!-- The contents of this file will be loaded for each web application -->
    <Context>

        <!-- Default set of monitored resources. If one of these changes, the    -->
        <!-- web application will be reloaded.                                   -->
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
        <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

        <!-- Uncomment this to disable session persistence across Tomcat restarts -->
        <!--
        <Manager pathname="" />
        -->

    <Resource name="jdbc/myoracle" auth="Container"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@127.0.0.1:1521:mysid"
              username="sijeune" password="oracle" maxTotal="20" maxIdle="10"
              maxWaitMillis="-1"/>
    </Context>

web.xml :

只需添加:

<resource-ref>
 <description>Oracle Datasource example</description>
 <res-ref-name>jdbc/myoracle</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
</resource-ref>