【问题标题】:How can I map multiple contexts inside the save server.xml in Tomcat?如何在 Tomcat 中的 save server.xml 中映射多个上下文?
【发布时间】:2019-06-25 12:28:18
【问题描述】:

我正在从 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.

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

谢谢。

【问题讨论】:

  • 看起来是一个 XML 解析异常,请发布您可能收到的任何堆栈跟踪,这会有所帮助。此外,请发布您的完整 context.xml。您似乎添加了另一个“上下文”元素,一个文档只能有一个文档元素。请按原样发布完整的 XML,这样可以清除它。
  • 那你为什么要尝试添加另一个文档元素:),为什么不制作另一个 WAR 文件并进行部署,毕竟在我看来,它们是不同的上下文。

标签: tomcat tomcat8


【解决方案1】:

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

【讨论】:

  • 谢谢,但我知道只允许 1 个上下文。我正在努力寻找解决方案。
猜你喜欢
  • 2012-03-15
  • 1970-01-01
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多