如何在 Tomcat 中的保存 server.xml 中映射多个上下文?

How can I map multiple contexts inside the save server.xml in Tomcat?

我是来自 eclipse 的 运行 tomcat 8.5,我在 METAINF 文件夹中有 context.xml, 此文件的内容自动复制到 tomcat 上的 conf/server.xml 运行时间。

我想做的是让 tomcat 在运行时将另一个上下文复制到 server.xml。原因是我需要第二个上下文来获取图像的路径 我可以从应用程序外部访问它们。 (在我的例子中来自 angualr 应用程序)。

我尝试将另一个上下文标记添加到 context.xml,这是完整的 上下文 xml:

<Context path="/test" docBase="C:\eclipse\workspace\myproj\test"
        debug="5" reloadable="true" crossContext="true">

<Resource name="jdbc/TestDB" 
              auth="Container"
              type="javax.sql.DataSource" 
              username="root" 
              password="simba"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://127.0.0.1:3306/my_db?autoReconnect=true"              
              testOnBorrow="true"
              removeAbandoned="true"              
              logAbandoned="true"
              maxWait="60"
              maxActive="10" 
              maxIdle="4"/>              
</Context>

<Context path="/images" docBase="C:\Users\john\Documents\images"
        debug="5" reloadable="true" crossContext="true"> 

</Context>

我收到错误消息,仅允许 1 个或更重要的是:

The markup in the document following the root element must be well-formed.

我也尝试用不同的名称创建另一个文件,但内容没有被复制。 知道在哪里 add/change 配置使其工作吗?

谢谢。

您不能放置多个 'Context' 元素是 Tomcat 的 context.xml 文件,它违反了格式良好性约束;一个 XML 文档只能有一个文档元素。您正在尝试做的是使 context.xml 文件具有多个文档元素。参考 Tomcat 9 Documentation。在 'Defining the Context' 部分,它提供了可以定义上下文的位置(注意,不建议将上下文元素放在 server.xml 中)。