2012-08-03 68 views
2

我與jsf2springhibernate一起工作。 當我想要將jsf2與spring集成時,我在啓動我的JSF tomcat7時出現此錯誤。我有罐子myfaces-impl & api。我搜索了互聯網,但直到現在還沒有找到解決方案。將Spring與JSF2集成

Grave: Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) com.sun.faces.config.ConfigureListener 
java.lang.NoClassDefFoundError: com/sun/facelets/tag/TagHandler 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(Unknown Source) 
at java.security.SecureClassLoader.defineClass(Unknown Source) 
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2823) 
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1160) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1655) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533) 
at com.sun.faces.util.Util.loadClass(Util.java:205) 
at com.sun.faces.config.processor.AbstractConfigProcessor.loadClass(AbstractConfigProcessor.java:289) 
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processHandlerClass(FaceletTaglibConfigProcessor.java:365) 
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTags(FaceletTaglibConfigProcessor.java:351) 
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTagLibrary(FaceletTaglibConfigProcessor.java:299) 
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.process(FaceletTaglibConfigProcessor.java:248) 
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:313) 
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:208) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4765) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5260) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1525) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1515) 
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: com.sun.facelets.tag.TagHandler 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533) 
... 25 more 

web.xml中:

<listener> 
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
<listener> 
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> 
</listener> 
<context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value>/WEB-INF/application-context.xml</param-value> 
</context-param> 

<servlet> 
<servlet-name>Faces Servlet</servlet-name> 
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>Faces Servlet</servlet-name> 
<url-pattern>*.jsf</url-pattern> 
</servlet-mapping> 

<filter> 
<filter-name>RichFaces Filter</filter-name> 
<filter-class>org.ajax4jsf.Filter</filter-class> 
</filter> 
<filter-mapping> 
<filter-name>RichFaces Filter</filter-name> 
<servlet-name>Faces Servlet</servlet-name> 
</filter-mapping> 

faces-config.xml中:

<application> 
<el-resolver> 
org.springframework.web.jsf.el.SpringBeanFacesELResolver 
</el-resolver> 
</application> 

回答

1

您需要添加jsf2庫。如果你已經添加了它,那麼它不在你的類路徑中。

+0

是的,我已經添加了jsf2庫(jsf-impl,jsf-api,jstl)。並且存在於我的類路徑中(我選擇了構建路徑 - >庫 - >添加罐子)。這些步驟已經完成,但它顯示了我這些錯誤。 – Ziko 2012-08-03 21:16:58

+0

我解決了這個問題。所有我要做的就是將jsf版本從1.5改爲2。 – Ziko 2012-08-04 01:09:39

0

在JSF 2中使用舊的facelets jars沒有意義,因爲實現會捆綁facelet VDL。相反,似乎有些JSF 1.2庫在JSF 2應用程序中使用,這是不正確的。只是更新你的庫,如果你正在使用JSF 2.

+0

我正在學習一個教程,並且如上所述添加了庫,所以我認爲這是一個啓動監聽器的問題。 – Ziko 2012-08-03 21:28:46