我们正在使用Windows 8.1,NetBeans 8.02和tomcat 8.0.15开发Web应用程序 . 我们在web / META-INF中有我们的context.xml . 随着它越来越大,将它分成几部分并使用XML实体将部分包含到主context.xml中会很不错 .

根据这篇文章:http://blogs.mulesoft.org/including-files-into-tomcats-server-xml-using-xml-entity-includes/这是可能的 .

基于此,我尝试过:

context.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Context [
<!ENTITY imports SYSTEM "imports.cnt">
]>
<Context ...>
  ...
  &imports;
  ...
</Context>

其中imports.ent除了context.xml之外还放在web / META-INF中,并且包含一些Resource节点,这些节点最初是Context节点的子节点 .

但是,这不适用于NetBeans,似乎问题是找不到imports.cnt,因为部署时import.ent没有放入C:\ Users \ nora \ AppData \ Roaming \ NetBeans \ 8.0.2 \ apache -tomcat-8.0.15.0_base \ conf \ Catalina \ localhost和此目录中部署的context.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Context [<!ENTITY imports UNKNOWN>]>
<Context ...>
  ...
</Context>

所以tomcat抱怨,因为context.xml是不可解析的:

SEVERE [http-nio-8084-exec-12] org.apache.catalina.startup.ContextConfig.processContextConfig Parse error in context.xml for /CarManagement
 org.xml.sax.SAXParseException; systemId: file:/C:/Users/nora/AppData/Roaming/NetBeans/8.0.2/apache-tomcat-8.0.15.0_base/conf/Catalina/localhost/CarManagement.xml; lineNumber: 2; columnNumber: 38; OpenQuoteMissingInDecl
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:441)

即使手动放置imports.cnt也无济于事 .

How to tell NetBeans that imports.cnt should be preprocessed and deployed together with context.xml? 文件imports.cnt甚至没有列在webapp的配置文件中,我不知道如何在那里添加它 .

我也试过使用没有NetBeans的war文件:在tomcat webapps目录下复制战争然后它正在工作但是:我必须在tomcat bin目录下和conf / Catalina / localhost下复制imports.cnt .

谁能帮我?提前致谢 .