Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat应用无法以严格的\u SERVLET\u COMPLIANCE=true部署_Java_Apache_Tomcat_Tomcat8 - Fatal编程技术网

Java Tomcat应用无法以严格的\u SERVLET\u COMPLIANCE=true部署

Java Tomcat应用无法以严格的\u SERVLET\u COMPLIANCE=true部署,java,apache,tomcat,tomcat8,Java,Apache,Tomcat,Tomcat8,我试图通过更新apache-Tomcat-8.0.39\conf\catalina.properties在Tomcat 8.0.39上部署一个应用程序,选项STRICT\u SERVLET\u COMPLIANCE=true,但一旦这样做,我的应用程序部署就会失败。 i、 e.我开始出现错误: applications web.xml文件中所有标记的严重[localhost-startStop-1]org.apache.tomcat.util.digester.digester.error解析错

我试图通过更新apache-Tomcat-8.0.39\conf\catalina.properties在Tomcat 8.0.39上部署一个应用程序,选项STRICT\u SERVLET\u COMPLIANCE=true,但一旦这样做,我的应用程序部署就会失败。 i、 e.我开始出现错误: applications web.xml文件中所有标记的严重[localhost-startStop-1]org.apache.tomcat.util.digester.digester.error解析错误

其中一个堆栈跟踪如下所示:

2017年2月9日15:06:32.189严重[localhost-startStop-1]org.apache.tomcat.util.digester.digester.error第5行第66列解析错误:文档根元素“web app”,必须与DOCTYPE root“xml”匹配。 org.xml.sax.SAXParseException;systemId:file:/C:/Servers/Tomcat%208/apache-Tomcat-8.0.39/webapps/file-service/WEB-INF/WEB.xml;行号:5;栏目号:66;文档根元素“web app”必须与DOCTYPE根元素“xml”匹配。 位于com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(未知源) 位于com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(未知源) 位于com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知来源) 位于com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知来源) 位于com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知来源) 在com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.rootElementSpecified(未知源) 位于com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handlestarelement(未知源) 位于com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(未知来源) 在com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(未知来源) 位于com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(未知源) 位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(未知源) 位于com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(未知来源) 在com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(未知来源) 位于com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(未知源) 在com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.ScandDocument(未知来源) 位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知源) 位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知源) 位于com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(未知源) 位于com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(未知源代码) 位于com.sun.org.apache.xerces.internal.jaxp.saxpasserimpl$jaxpsaxpasser.parse(未知源代码) 位于org.apache.tomcat.util.digester.digester.parse(digester.java:1448) 位于org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml(WebXmlParser.java:119) 位于org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1119) 位于org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:783) 位于org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:307) 位于org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95) 位于org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5213) 位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) 位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) 位于java.util.concurrent.FutureTask.run(未知源) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(未知源) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源) 位于java.lang.Thread.run(未知源)

为了解决这个问题,我尝试了以下选项:

1) 在catalina.properties中添加了以下内容:

org.apache.catalina.STRICT_SERVLET_COMPLIANCE=true
org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR=false
2) 更新了代理warweb.xml文件 使用web-app_2_5.xsd更新了web-app_3_0.xsd 已将版本=“3.0”更新为版本=“2.5”

我还尝试将“web app”标记条目从apache-tomcat-8.0.39\conf\web.xml复制到我的应用程序web.xml中,但没有任何用处

3) 尝试将下列值设置为各自的默认值[作为设置]

org.apache.catalina.STRICT_SERVLET_COMPLIANCE=true changes these defaults]
org.apache.catalina.core.ApplicationContext.GET_RESOURCE_REQUIRE_SLASH
org.apache.catalina.core.ApplicationDispatcher.WRAP_SAME_OBJECT
org.apache.catalina.core.StandardHostValve.ACCESS_SESSION
org.apache.catalina.session.StandardSession.ACTIVITY_CHECK
org.apache.catalina.session.StandardSession.LAST_ACCESS_AT_START
org.apache.tomcat.util.http.ServerCookie.STRICT_NAMING

The **URIEncoding** attribute of any HTTP connector or AJP connector element.
The **resourceOnlyServlets** attribute of any Context element.
The **tldValidation** attribute of any Context element.
The **useRelativeRedirects** attribute of any Context element.
The **xmlNamespaceAware** attribute of any Context element.
The **xmlValidation** attribute of any Context element.
但似乎没有什么工作正常。我也无法导航到tomcat manager或任何其他部署的应用程序

另一方面,当我在catalina.properties中编写STRICT_SERVLET_COMPLIANCE=false时,一切都很好

这里有我遗漏的东西吗?请帮我解决这个问题

问候,,
Bhupesh

我也遇到了这个问题。我们所处的环境要求严格的SERVLET合规性设置为true,但web.xml的验证不是该要求背后的驱动力。要解决这个问题,请尝试在conf/context.xml的标记中将xmlValidation设置为false:

<Context xmlValidation="false"> ... </Context>
。。。

我不确定我怎么没能回答我的这个问题,但是是的,我们早就用您提到的选项解决了这个问题。谢谢您的回答。