tomcat context.xml拆分为实体

时间:2015-02-10 09:35:51

标签: tomcat netbeans xml-parsing context.xml

我们正在使用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。

任何人都可以帮助我吗?提前致谢。

0 个答案:

没有答案