Tomcat 7.0.12 报错 org.apache.catalina.deploy.WebXml addFilter
2017-04-28 10:36
549 查看
今天工作的时候从SVN新下载了一个项目,用的Tomcat 7.0.52 启动的,虽然项目能启动,但是有些页面报错:
是因为 自从7.0.52版本后出于安全考虑将 xmlBlockExternal=”true”
官方解释:
可以将 Tomcat conf目录下的context.xml的 contex 节点上加上一个属性
xmlBlockExternal=”false”
然后我下载了一个低版本的 Tomcat 7.0.12 ,运行后又出现下面的错误,我将主要的信息截了出来:
这个错的解决方法是在Tomcat的 conf目录下的context.xml配置文件中的 Context 节点上加入 配置.
关于< Loader delegate=”true” /> 节点:
设置为 true,表示tomcat将遵循JVM的delegate机制,即一个WebAppClassLoader在加载类文件时,会先递交给SharedClassLoader加载,SharedClassLoader无法加载成功,会继续向自己的父类委托,一直到BootstarpClassLoader,如果都没有加载成功,则最后由WebAppClassLoader自己进行加载。
设置成 false,表示将不遵循这个delegate机制,即WebAppClassLoader在加载类文件时,会优先自己尝试加载,如果加载失败,才会沿着继承链,依次委托父类加载。
关于类加载的机制,将在稍后的博客中总结.
java.io.FileNotFoundException: Could not resolve XML resource [null] with public ID [***] and base URI [null] to a known, local entity.
是因为 自从7.0.52版本后出于安全考虑将 xmlBlockExternal=”true”
官方解释:
As per discussion with Tomcat developers, xmlBlockExternal=”true” attribute of Tomcat’s Context (context.xml) was set true by default starting from 7.0.52. With xmlBlockExternal=”false” generated/djn- settings.conf can be included` ontext xmlBlockExternal="false">
可以将 Tomcat conf目录下的context.xml的 contex 节点上加上一个属性
xmlBlockExternal=”false”
然后我下载了一个低版本的 Tomcat 7.0.12 ,运行后又出现下面的错误,我将主要的信息截了出来:
2017-4-28 10:32:25 org.apache.tomcat.util.digester.Digester endElement 严重: End event threw exception java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:802) at org.apache.tomcat.util.digester.SetNextRule.end(SetNextRule.java:201) at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1057) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ..... 2017-4-28 10:32:25 org.apache.catalina.startup.ContextConfig parseWebXml 严重: Parse error in application web.xml file at jndi:/localhost/B-SDM/WEB-INF/web.xml java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2687) at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2713) at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1060) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) ...... 2017-4-< ac35 span class="hljs-number">28 10:32:25 org.apache.catalina.startup.ContextConfig parseWebXml 严重: Occurred at line 21 column 11 2017-4-28 10:32:25 org.apache.catalina.startup.ContextConfig configureStart 严重: Marking this application unavailable due to previous error(s)
这个错的解决方法是在Tomcat的 conf目录下的context.xml配置文件中的 Context 节点上加入 配置.
<Loader delegate="true" />
关于< Loader delegate=”true” /> 节点:
设置为 true,表示tomcat将遵循JVM的delegate机制,即一个WebAppClassLoader在加载类文件时,会先递交给SharedClassLoader加载,SharedClassLoader无法加载成功,会继续向自己的父类委托,一直到BootstarpClassLoader,如果都没有加载成功,则最后由WebAppClassLoader自己进行加载。
设置成 false,表示将不遵循这个delegate机制,即WebAppClassLoader在加载类文件时,会优先自己尝试加载,如果加载失败,才会沿着继承链,依次委托父类加载。
关于类加载的机制,将在稍后的博客中总结.
相关文章推荐
- Tomcat7启动报错-->java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
- Tomcat - org.apache.catalina.deploy.WebXml addFilter
- tomcat启动报错:org.apache.catalina.deploy.WebXml addFilter
- Tomcat 7.0启动报org.apache.catalina.deploy.WebXml addFilter快速错解决方法
- Tomcat - org.apache.catalina.deploy.WebXml addFilter
- tomcat 启动报错 org.apache.catalina.deploy.WebXml addFilter 解决
- Tomcat - org.apache.catalina.deploy.WebXml addFilter
- tomcat异常 org.apache.catalina.deploy.WebXml addFilter
- 部署项目时,启动Tomcat一直出错:Java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
- Tomacat7启动报错-org.apache.catalina.deploy.WebXml addFilter的解决方法
- org.apache.catalina.deploy.WebXml addFilter
- Tomacat7启动报错-org.apache.catalina.deploy.WebXml addFilter
- Tomacat启动报错--org.apache.catalina.deploy.WebXml addFilter
- Tomacat7启动报错-org.apache.catalina.deploy.WebXml addFilter
- 错误处理:java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
- 错误处理:java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
- 在eclipse中导入SSH项目文件报错:java.lang.NoSuchMethodException:org.apache.catalina.deploy.WebXml addFilter
- Tomacat启动不了报错--org.apache.catalina.deploy.WebXml addFilter
- java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
- Tomacat7启动报错-org.apache.catalina.deploy.WebXml addFilter