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

时间:2019-06-25 12:28:18

标签: tomcat tomcat8

我正在从Eclipse运行tomcat 8.5,并且METAINF文件夹中有context.xml, 该文件的内容会自动复制到tomcat上的conf / server.xml中 运行时。

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

我试图向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.

我还尝试创建另一个具有不同名称的文件,但不会复制内容。 您知道在哪里添加/更改配置以使其正常工作吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

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