我们正在使用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中,并包含一些最初是Context节点子节点的Resource节点。
但是,这不适用于NetBeans,似乎问题是找不到imports.cnt,因为部署时import.ent没有放入 C:\ Users \用户诺拉\应用程序数据\漫游\的NetBeans \ 8.0.2 \ Apache的Tomcat的8.0.15.0_base \ CONF \卡塔利娜\本地主机 此目录中部署的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也无济于事。
如何告诉NetBeans应该对context.cnt进行预处理并与context.xml一起部署? 文件imports.cnt甚至没有列在webapp的配置文件中,我不知道如何在那里添加它。
我还尝试过使用没有NetBeans的war文件: 在tomcat webapps目录下复制战争然后它正在工作但是: 我不得不在tomcat bin目录下和conf / Catalina / localhost下复制imports.cnt。
任何人都可以帮助我吗?提前致谢。