我正在尝试在我的项目中安装OmniFaces。我将omnifaces-1.8.1.jar
放在/WEB-INF/lib
文件夹中,并在web.xml
中实施FacesViews配置。
<context-param>
<param-name>org.omnifaces.FACES_VIEWS_SCAN_PATHS</param-name>
<param-value>/*.xhtml</param-value>
</context-param>
但是,在部署期间,我得到以下例外:
SEVERE: WebXml failed to initialize. Perhaps your web.xml contains a typo?
java.lang.ClassNotFoundException: java.lang.java.io.IOException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at org.omnifaces.config.WebXml.parseErrorPageLocations(WebXml.java:434)
at org.omnifaces.config.WebXml.init(WebXml.java:147)
at org.omnifaces.facesviews.FacesViewsInitializerListener.contextInitialized(FacesViewsInitializerListener.java:63)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Oct 09, 2014 9:48:08 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.omnifaces.facesviews.FacesViewsInitializerListener
java.lang.RuntimeException: java.lang.ClassNotFoundException: java.lang.java.io.IOException
at org.omnifaces.config.WebXml.init(WebXml.java:156)
at org.omnifaces.facesviews.FacesViewsInitializerListener.contextInitialized(FacesViewsInitializerListener.java:63)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: java.lang.java.io.IOException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at org.omnifaces.config.WebXml.parseErrorPageLocations(WebXml.java:434)
at org.omnifaces.config.WebXml.init(WebXml.java:147)
... 10 more
答案 0 :(得分:1)
查看根本原因:
Caused by: java.lang.ClassNotFoundException: java.lang.java.io.IOException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at org.omnifaces.config.WebXml.parseErrorPageLocations(WebXml.java:434)
你显然有:
<exception-type>java.lang.java.io.IOException</exception-type>
该异常类确实不存在。相应地修复它:
<exception-type>java.io.IOException</exception-type>
您的web.xml
肯定包含了拼写错误。