# JSF 2.0 Wie Richfaces in Eclipse einbinden?



## endnic (26. Jul 2010)

Hallo alle miteinander,

ich habe schon seit einigen Tagen das Problem die Richfaces-taglibs in Eclipse einzubinden.

Mal von anfang an:

ich habe eine Webapplikation mit den Standard-JSF2.0 libs geschrieben, nun brauch ich aber unbedingt eine Funktionen von Richfaces.

Meine eingebundenen libs bisher:


```
JRE System Library [jre6]

Apache Tomcat v6.0
 - annotations-api.jar
 - catalina-ant.jar
 - catalina-ha.jar
 - catalina-tribes.jar
 - catalina.jar
 - el-api.jar
 - jasper-el.jar
 - jasper-jdt.jar
 - jasper.jar
 - jsp-api.jar
 - servlet-api.jar
 - tomcat-coyote.jar
 - tomcat-dbcp.jar
 - tomcat-i18n-es.jar
 - tomcat-i18n-fr.jar
 - tomcat-i18n-ja.jar

JSF 2.0 (Apache Myfaces JSF Core-2.0 API 2.0.0)
 - myfaces-impl-2.0.0.jar
 - myfaces-api-2.0.0.jar
 - commons-collections-3.2.jar
 - commons-discovery-0.4.jar
 - commons-logging-1.1.1.jar
 - commons-codec-1.3.jar
 - commons-beanutils-1.7.0.jar
 - commons-digester-1.8.jar
 - jhighlight-1.0.jar

Web App Libraries (lib-Ordner unter WEB-INF)
 - jsf-api.jar
 - jsf-impl.jar
 - jstl-api-1.2.jar
 - jstl-impl-1.2.jar
 - mysql-connector-java-5.1.11-bin.jar
```

Mit den libs läuft meine Webanwendung problemlos, wenn ich nun aber unter 
WEB-INF/lib noch folgende JARS hinzufüge:

```
- richfaces-api-3.3.3.Final.jar
 - richfaces-impl-3.3.3.Final.jar
 - richfaces-impl-jsf2-3.3.3.Final.jar
 - richfaces-ui-3.3.3.Final.jar
```

bekomme ich folgenden Fehler:


```
SCHWERWIEGEND: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
	at org.ajax4jsf.renderkit.ChameleonRenderKitFactory.<clinit>(ChameleonRenderKitFactory.java:50)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:586)
	at javax.faces.FactoryFinder.getImplementationInstance(FactoryFinder.java:472)
	at javax.faces.FactoryFinder.access$400(FactoryFinder.java:139)
	at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:796)
	at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:306)
	at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:303)
	at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:220)
	at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:335)
	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:519)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
	... 29 more
26.07.2010 13:05:24 org.apache.catalina.core.StandardContext start
SCHWERWIEGEND: Error listenerStart
26.07.2010 13:05:24 org.apache.catalina.core.StandardContext start
```

und beim Aufruf meiner "Startseite" bekomme ich den Fehler 404 vom Server. ;(

Ich muss bestimmt noch irgendwas in meine web.xml eintragen.
die web.xml bisher:
[XML]<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <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>
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
  </context-param>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>[/XML]

Wäre super wenn jemand eine Idee hätte und mir helfen könnte.

Danke


----------



## nocturne (26. Jul 2010)

Ohne       JBoss-Tools-Plugin 
kannste gleich "notepad" nehmen.


----------



## endnic (26. Jul 2010)

Hi,

okay...aber selbst da habe ich das gleiche Problem... ;(


----------



## internet (26. Jul 2010)

Binde das hier mal ein in die web.xml:


```
<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>
```


----------



## endnic (27. Jul 2010)

@internet

vielen Dank das hat erstmal geholfen, ausserdem habe ich von den Richfaces JARS nur diese hier importiert:


```
- richfaces-api-3.3.3.Final.jar
 - richfaces-impl-jsf2-3.3.3.Final.jar
 - richfaces-ui-3.3.3.Final.jar
```

Jetzt wartet aber schon das nächste Problem.

Sofern ich statt 
	
	
	
	





```
f:ajax render
```
 (wird lt. JBoss-Community in Richfaces-Version 3.3.3 nicht unterstützt) das hier nehme 
	
	
	
	





```
a4j:support reRender
```
bekomme ich folgende Fehlermeldung:


```
<a4j:support> Tag Library supports namespace: http://richfaces.org/a4j, but no tag was defined for name: support
```

dieser Fehler tritt generell auf egal welchen a4j-Tag ich nehme...

a4j habe ich hiermit eingebunden 
	
	
	
	





```
xmlns:a4j="http://richfaces.org/a4j"
```
 und a4j ist Teil der 
	
	
	
	





```
richfaces-api-3.3.3.Final.jar
```
.

Was mach ich denn nun noch falsch??

BTW: die Rich-Tags funktionieren allerdings...


----------



## internet (27. Jul 2010)

binde zusätzlich in der web.xml das hier ein:


```
<context-param>
  <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
  <param-value>com.sun.facelets.FaceletViewHandler</param-value>
 </context-param>
```


----------



## endnic (27. Jul 2010)

also das Problem besteht leider immernoch...

hier mal meine komplette web.xml:

[XML]<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

	<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>

	<context-param>
  		<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
  		<param-value>com.sun.facelets.FaceletViewHandler</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>

  	<context-param>
    	<param-name>javax.faces.PROJECT_STAGE</param-name>
    	<param-value>Development</param-value>
  	</context-param>

  	<welcome-file-list>
    	<welcome-file>index.jsp</welcome-file>
    	<welcome-file>index.html</welcome-file>
  	</welcome-file-list>


</web-app>[/XML]

und die Exception:


```
27.07.2010 10:04:09 com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
SCHWERWIEGEND: Error Rendering View[/picklist.xhtml]
javax.faces.view.facelets.TagException: /showrecord.xhtml @16,54 <a4j:support> Tag Library supports namespace: http://richfaces.org/a4j, but no tag was defined for name: support
	at com.sun.faces.facelets.compiler.CompilationManager.pushTag(CompilationManager.java:285)
	at com.sun.faces.facelets.compiler.SAXCompiler$CompilationHandler.startElement(SAXCompiler.java:225)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	at javax.xml.parsers.SAXParser.parse(Unknown Source)
	at javax.xml.parsers.SAXParser.parse(Unknown Source)
	at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:385)
	at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:361)
	at com.sun.faces.facelets.compiler.Compiler.compile(Compiler.java:117)
	at com.sun.faces.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:331)
	at com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:215)
	at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:359)
	at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:339)
	at com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:191)
	at com.sun.faces.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:102)
	at com.sun.faces.facelets.tag.jsf.core.FacetHandler.apply(FacetHandler.java:97)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:120)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:204)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:120)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:204)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
	at com.sun.faces.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:149)
	at com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:160)
	at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:86)
	at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:75)
	at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:145)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:716)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:351)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)
```


----------



## internet (27. Jul 2010)

Dein Header sieht auch so aus von der JSF - Seite?


```
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
			    xmlns:ui="http://java.sun.com/jsf/facelets"
			    xmlns:h="http://java.sun.com/jsf/html"
			    xmlns:f="http://java.sun.com/jsf/core"
			    xmlns:rich="http://richfaces.org/rich"
			    xmlns:a4j="http://richfaces.org/a4j">
```


----------



## endnic (27. Jul 2010)

ja sieht genauso aus...

ich habe 5 Dateien...

eine index.jsp die die autom. weiterleitet auf die erste xhtml.
innerhalb der xhtml binde ich dynamisch die 3 anderen xhtml dateien ein. Also quasi son conten switscher...

alle xhtml-dateien beginnen mit:


```
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	  xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich">
```

EDIT: was mir gerade noch auffällt...bevor die oben beschriebene Exception kommt, kommt vorher noch diese Exception: 
	
	
	
	





```
SCHWERWIEGEND: Error instantiation parent Faces ViewHandler
java.lang.ClassNotFoundException: com.sun.facelets.FaceletViewHandler
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
	at org.ajax4jsf.application.ViewHandlerWrapper.fillChain(ViewHandlerWrapper.java:152)
	at org.ajax4jsf.event.InitPhaseListener.beforePhase(InitPhaseListener.java:90)
	at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:228)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:99)
	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)
```

Is nur seltsam, eigentlich ist die Klasse ja vorhanden... ??? :L


EDIT2:

Ich Trottel hatte die JAR doch nicht eingebunden...aber nach dem ich folgende JAR 
	
	
	
	





```
jsf-facelets-1.1.15.B1.jar
```
 eingebunden habe ist der Fehler weg, leider bekomme ich stattdessen jetzt nen Fehler 404 vom Server... ;(

EDIT3: es scheint als wenn das Mapping nicht mehr funktioniert...wenn ich die files mit ".xhtml" aufrufe wird mir die Seite angezeigt (natürlich ungerendert), rufe ich sie jedoch mit ".jsf" auf, dann bekomme ich den besagten Fehler 404.


----------



## Deadalus (28. Jul 2010)

Für neue JSF 2.0 Projekte bitte kein RichFaces 3.* verwenden. Diese Version ist nur JSF 2.0 kompatibel. Das heist, das viele essentielle Sachen nicht funktionieren werden wenn du JSF 2.0 verwendest. 

Nimm stattdessen RichFaces 4.0, diese Version untersützt vollständig JSF 2.0. Diese Version befindet sich aber noch in einem sehr frühren Stadium (Milestone 1). 

Persönlicher Tipp: Verwende PrimeFaces, hat die besseren Komponenten und entwickelt sich deutlich schneller weiter. Installation ist außerdem ein Kinderspiel. Einfach eine! Jar einbinden und fertig.


----------



## nocturne (28. Jul 2010)

Deadalus hat gesagt.:


> Für neue JSF 2.0 Projekte bitte kein RichFaces 3.* verwenden. Diese Version ist nur JSF 2.0 kompatibel. Das heist, das viele essentielle Sachen nicht funktionieren werden wenn du JSF 2.0 verwendest.
> 
> Nimm stattdessen RichFaces 4.0, diese Version untersützt vollständig JSF 2.0. Diese Version befindet sich aber noch in einem sehr frühren Stadium (Milestone 1).
> 
> Persönlicher Tipp: Verwende PrimeFaces, hat die besseren Komponenten und entwickelt sich deutlich schneller weiter. Installation ist außerdem ein Kinderspiel. Einfach eine! Jar einbinden und fertig.



Primefaces ist wirklich besser, jedoch muss halt wie üblich die web.xml angepasst werden.
Vorsicht mit den Beispielen von PrimeFaces: Die funktionieren nicht wirklich.


----------



## Deadalus (28. Jul 2010)

nocturne hat gesagt.:


> Primefaces ist wirklich besser, jedoch muss halt wie üblich die web.xml angepasst werden.
> Vorsicht mit den Beispielen von PrimeFaces: Die funktionieren nicht wirklich.




Nein, nicht wenn man einen aktuellen Servlet  3.0 Container wie Glassfish 3 (oder Tomcat 7) verwendet. Dann sind keine Einträge in die web.xml nötig


----------



## kidsos (30. Aug 2010)

Ich hänge mich mal hier mit rein, da ich ein ähnliches Problem habe. Ich möchte Primefaces in meine Web Application einbinden (Server: Tomcat 7 Beta). Nur klappts nicht so, wie ich möchte. 

In der web.xml habe ich bereits folgendes eingetragen:
[XML]<servlet>
		<servlet-name>Resource Servlet</servlet-name>
		<servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>Resource Servlet</servlet-name>
		<url-pattern>/primefaces_resource/*</url-pattern>
	</servlet-mapping>[/XML]

Und in der XHTML-Seite folgendes: 
	
	
	
	





```
xmlns:p="http://primefaces.prime.com.tr/ui"
```

Ich kann zwar die Primefaces-Tag nutzen, aber wenn ich dann die Applikation auf dem Server testen möchte, wird die Primefaces-Komponente nicht angezeigt.

Könnt ihr mir hier irgendwie weiterhelfen?

Danke im Voraus


----------



## endnic (30. Aug 2010)

Hi hi, wenn ich das richtig verstehe erhälst Du keine Fehlermeldung, sondern die Komponenten werden einfach nicht ins HTML übersetzt?

Poste mal Deine faces-config.xml


----------



## kidsos (30. Aug 2010)

Genau. Obwohl, ich bekomme eine Warnung:

```
Description	Resource	Path	Location	Type
Classpath entry org.eclipse.jdt.USER_LIBRARY/PrimeFaces 2.0 will not be exported or published. Runtime ClassNotFoundExceptions may result.  	BudgetManager		P/BudgetManager	Classpath Dependency Validator Message
```

faces-config.xml:
[XML]<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    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-facesconfig_2_0.xsd"
    version="2.0">

</faces-config>
[/XML]


----------



## endnic (31. Aug 2010)

mmmhh...also an der faces-config kann ich erstmal keine Fehler feststellen...aber die Warnung sagt ja eindeutig aus, das Eclipse beim Export die PrimeFaces-JAR nicht mit exportiert.

Also ich hatte damals keine Probleme mit PrimeFaces unter Eclipse und jetzt hab ich auch keine (bin gerade auf NetBeans umgestiegen).
Das einzige was ich Dir anbieten kann das wir deine Projektstruktur mal gemeinsam durchgehen...

Ne Frage, warum nutzt Du nicht die PrimeFaces Version 2.1??


----------



## kidsos (31. Aug 2010)

> Das einzige was ich Dir anbieten kann das wir deine Projektstruktur mal gemeinsam durchgehen...


Können wir gerne machen.



> warum nutzt Du nicht die PrimeFaces Version 2.1??


Achso. Ich hab dafür ne User Library angelegt und die Jar dort reingelegt. Verwende aber die aktuelle 2.1er Version.



> aber die Warnung sagt ja eindeutig aus, das Eclipse beim Export die PrimeFaces-JAR nicht mit exportiert


Viel wichtiger für mich ist, wie ich das Problem lösen kann? 

Edit: Hab die Dependency jetzt exportiert. Trotzdem passiert nichts.


----------



## endnic (1. Sep 2010)

Moin,

also ich habe mal unter Eclipse (mit JBOSS-Tools) ein neues Web Project mit Primefaces erstellt.
Wollte das WAR-File in den Anhang mit anfügen, leider ist sie zu groß, deshalb hab ichs bei RapidShare hochgeladen, damit Du es auch mal bei dir auf dem Server deployen kannst. Bei mir läuft es unter Tomcat 6 und GlassFish V 3 einwandfrei.

Hier die File: test_primefaces.war

Hoffe dir hilfts weiter...wenn nicht nochmal melden...


----------



## kidsos (1. Sep 2010)

Also, dein Test-Projekt läuft schon mal bei mir. Was mir in deiner web.xml aufgefallen ist, ist folgender Wert (müsste das nicht eigentlich auch ohne diesen Contex-Parameter laufen?):

[XML]
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
  </context-param>[/XML]
Nachdem ich das hinzugefügt, kommt in meiner JSF-Seite, folgende Meldung:

```
Warning: This page calls for XML namespace http://primefaces.prime.com.tr/ui declared with prefix p but no taglibrary exists for that namespace.
```
Was muss ich denn da nun genau tun?


----------



## endnic (1. Sep 2010)

Ja eigentlich müsste es auch ohne diesen Eintrag laufen, sagt ja nur aus, dass das Projekt in der Entwicklung ist...lässt Du es weg, wird Standardmäßig "PRODUCTION" genommen
Genau beschrieben wozu das da ist HIER

Du hast einfach nur diesen einen Context-Parameter eingegeben?? Sonst nix von meinem Beispielprojekt übernommen??


----------



## kidsos (1. Sep 2010)

Hab probehalber mal meine web.xml durch deine ersetzt, trotzdem kommt bei mir immer die obige Warnung, dass keine Taglib für diesen Namespace existiert.


----------



## endnic (2. Sep 2010)

mmhh...das einzige was mir jetzt noch einfällt ist, dass sich evtl. deine JSF-JARS mit der PrimeFaces-JAR beißen. Ersetze doch mal probehalber deine JARS mit den JARS aus meinem Beispiel...


----------



## kidsos (2. Sep 2010)

Also, die Sache hier ist ja sehr merkwürdig.

Wenn ich das Projekt über Tomcat starte, funktioniert es auf einmal (habe noch die 2 JSF Jars in das lib-Verzeichnis kopiert). Sowohl mit deinen Jars als auch mit meinen. Wenn ich dann aber den Tomcat über Eclipse starte, bringt er mir diese Warnung. Scheint wohl so, dass Eclipse irgendwas durcheinander haut. Oder woran könnte es noch liegen?


----------



## endnic (3. Sep 2010)

Das wirklich merkwürdig, aber es scheint wirklich so als wenn Eclipse beim deployen nicht alle JARS mit deployed. Also ne andere Erklärung habe ich dazu vorerst nicht.

Eclipse bringt die Warnung auch wenn Du NUR meine JARS nutzt??


----------



## kidsos (3. Sep 2010)

Habe jetzt nochmal probiert, aus dem Projekt in Eclipse eine war-File zu generieren und diese dann händisch ins Tomcat-Verzeichnis zu kopieren. Wenn ich dann Tomcat starte und die Anwendung aufrufe, wird alles ohne Probleme dargestellt, auch die Primefaces-Komponenten. Ist natürlich sehr ungünstig, wenn man seine Anwendung debuggen möchte. Liegt wahrscheinlich an irgendeiner Plugin-Inkompatibilität in Eclipse.

Gut, das Problem habe ich jetzt erstmal lokalisiert. Mal sehen, was ich jetzt mache 

Vielen Dank für deine Hilfe, auch wenn sie nicht mein Problem gelöst hat!


----------



## endnic (4. Sep 2010)

Ja keen Ding...falls Du das Problem irgendwie lösen kannst, dann meld dich einfach nochmal...bis denne


----------

