我正在从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.
我还尝试创建另一个具有不同名称的文件,但不会复制内容。 您知道在哪里添加/更改配置以使其正常工作吗?
谢谢。
答案 0 :(得分:0)
您不能放置多个“ Context”元素是Tomcat的context.xml文件,它违反了格式正确性约束;一个XML文档只能有一个document元素。您正在尝试做的事情使context.xml文件具有多个文档元素。请参阅Tomcat 9 Documentation。在“定义上下文”部分中,它提供了可以定义上下文的位置(请注意,不建议将Context元素放置在server.xml中)。