2010-08-13 4 views
0

Je cours une webapp sur un serveur glassfish v3. Je viens d'ajouter richfaces à ma demande, mais je reçois une erreur quand j'essayer d'exécuter mon projet:Erreur après l'ajout de Richfaces

INFO: Initializing Mojarra 2.0.2 (FCS b10) for context '/WMC' 
INFO: Unsanitized stacktrace from failed start... 
java.lang.RuntimeException: WEB9033: Unable to load class with name [org.ajax4jsf.taglib.html.facelets.ActionParamHandler], reason: java.lang.NoClassDefFoundError: com/sun/facelets/tag/jsf/ComponentHandler 
     at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:944) 
     at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1420) 
     at com.sun.faces.util.Util.loadClass(Util.java:203) 
     at com.sun.faces.config.processor.AbstractConfigProcessor.loadClass(AbstractConfigProcessor.java:313) 
     at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processComponent(FaceletTaglibConfigProcessor.java:568) 
     at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTags(FaceletTaglibConfigProcessor.java:361) 
     at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTagLibrary(FaceletTaglibConfigProcessor.java:314) 
     at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.process(FaceletTaglibConfigProcessor.java:263) 
     at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:337) 
     at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223) 
     at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:4591) 
     at com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:535) 
     at org.apache.catalina.core.StandardContext.start(StandardContext.java:5193) 
     at com.sun.enterprise.web.WebModule.start(WebModule.java:499) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:928) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:912) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:694) 
     at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1933) 
     at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1605) 
     at com.sun.enterprise.web.WebApplication.start(WebApplication.java:90) 
     at org.glassfish.internal.data.EngineRef.start(EngineRef.java:126) 
     at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:241) 
     at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:236) 
     at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:339) 
     at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183) 
     at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272) 
     at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305) 
     at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320) 
     at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176) 
     at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83) 
     at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235) 
     at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224) 
     at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365) 
     at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204) 
     at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166) 
     at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100) 
     at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245) 
     at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) 
     at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) 
     at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) 
     at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) 
     at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) 
     at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) 
     at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) 
     at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) 
     at com.sun.grizzly.ContextTask.run(ContextTask.java:69) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) 
     at java.lang.Thread.run(Thread.java:619) 
Caused by: java.lang.NoClassDefFoundError: com/sun/facelets/tag/jsf/ComponentHandler 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:616) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
     at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:914) 
     ... 50 more 
Caused by: java.lang.ClassNotFoundException: com.sun.facelets.tag.jsf.ComponentHandler 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:949) 
     at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1420) 
     ... 55 more 

Mon web.xml ressemble à ceci:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
    <context-param> 
     <param-name>javax.faces.PROJECT_STAGE</param-name> 
     <param-value>Development</param-value> 
    </context-param> 
    <context-param> 
     <param-name>org.richfaces.SKIN</param-name> 
     <param-value>blueSky</param-value> 
    </context-param> 
    <context-param> 
     <param-name>org.richfaces.CONTROL_SKINNING</param-name> 
     <param-value>enable</param-value> 
    </context-param> 
    <filter> 
     <display-name>RichFaces Filter</display-name> 
     <filter-name>richfaces</filter-name> 
     <filter-class>org.ajax4jsf.Filter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>richfaces</filter-name> 
     <servlet-name>Faces Servlet</servlet-name> 
     <dispatcher>REQUEST</dispatcher> 
     <dispatcher>FORWARD</dispatcher> 
     <dispatcher>INCLUDE</dispatcher> 
    </filter-mapping> 
    <servlet> 
     <servlet-name>Faces Servlet</servlet-name> 
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet><servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>*.jsf</url-pattern> 
    </servlet-mapping><session-config> 
     <session-timeout> 
      10 
     </session-timeout> 
    </session-config><welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
    <resource-ref> 
     <res-ref-name>mail/WMCMail_LogicalName</res-ref-name> 
     <res-type>javax.mail.Session</res-type> 
     <res-auth>Container</res-auth> 
    </resource-ref> 
</web-app> 

Et j'ai ajouté suivant libs à mon projet

alt text http://img231.imageshack.us/img231/4696/libraries.png

J'ai essayé d'inclure jsf-facelets.jar, mais cela se traduit dans certains conflits de version. Savez vous ce que vous devez faire?

+0

Je l'ai utilisé les deux composants ici http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=8934 pour faire richface macadamia – AnAmuser

Répondre

2

Glassfish est livré avec des bibliothèques JSF 2.0 intégrées. RichFaces 3.3.0 n'est pas compatible avec JSF 2.0.

Vous avez 2 options:

  1. Downgrade JSF 2.0 à JSF 1.2. Vous devez fournir votre propre (ou RichFaces fourni) JSF 1.2 bibliothèques /WEB-INF/lib et instruire Glassfish d'utiliser la place JSF fourni par la mise en useBundledJsf propriété /WEB-INF/sun-web.xml à true:

    <sun-web-app> 
        <class-loader delegate="false"/> 
        <property name="useBundledJsf" value="true"/> 
    </sun-web-app> 
    
  2. RichFaces Mise à niveau 3.x au au moins 3.3.3. Il a un support partiel de JSF 2.0. Comment le faire fonctionner est décrit dans this document.

Pour soutien JSF 2.0 par RichFaces, vous avez attendez RichFaces 4.0 être définitive. Jusqu'à présent, PrimeFaces et OpenFaces sont l'un des rares avec un support complet de JSF 2.0.

+0

Je pense que je vais essayer OpenFaces alors. Cela semble être le plus facile :). Vous ne comprenez pas vraiment si mon projet est basé sur maven? – AnAmuser

+0

OpenFaces a un beau site web avec des composants incroyables, mais IMO n'a pas encore le support de la communauté. Pour PrimeFaces, le soutien de la communauté est meilleur. J'ai une expérience de handson avec elle et aussi à leur [forum] (http://primefaces.prime.com.tr/forum/viewforum.php?f=3) le développeur principal PF, Cagatay, répondra très bien sur les problèmes . Vous pourriez vouloir prendre cela en considération. Un bon soutien de la communauté est inestimable chaque fois que vous rencontrez des problèmes. BTW: PrimeFaces a aussi des composants impressionnants. Avez-vous trouvé leur [vitrine] (http://www.primefaces.org:8080/prime-showcase)? – BalusC

+0

PrimeFaces est également disponible chez Maven: http://www.primefaces.org/downloads.html – BalusC