JSF ortamında RichFaces kurulumu

RichFaces en yaygın kullanılan 3. party JSF componentlerinden biridir. En önemli özellikleri ajax desteği, var olan A4JSF kütüphanesi, zengin bileşen seçenekleri ve JQuery desteği diyebiliriz.
Kurulumu oldukça basit.

Öncelikle aşağıdaki dosyalari WEB-INF\lib\ klasörü altına kopyalıyoruz.

richfaces-api.jar
richfaces-impl-3.2.1.jar
richfaces-ui-3.2.1.jar

web.xml dosyasi altina aşağıdaki tanımları ekliyoruz.

    <context-param>
     <param-name>org.richfaces.SKIN</param-name>
     <param-value>blueSky</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>

Sayfa kullanımında aşağıdaki gibi namespace olmalıdır.

    <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
    <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>

eğer facelet kullanıyorsanız namespace tanımının aşağıdaki gibi olması gerekiyor

    <xmlns:a4j="http://richfaces.org/a4j">
    <xmlns:rich="http://richfaces.org/rich">

Artik jsf sayfalarımızda asagidaki gibi richfaces componentlerini kullanabiliriz.

    <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
    <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <html>
      <head>
     <title>test </title>
      </head>
      <body>
     <f:view>
       <h:form>
        <rich:panel header="Simple Echo">
       <h:inputText size="50" value="#{bean.text}" >
         <a4j:support event="onkeyup" reRender="rep"/>
       </h:inputText>
       <h:outputText value="#{bean.text}" id="rep"/>
        </rich:panel>
       </h:form>
     </f:view>
      </body>
    </html>
Nov 7th, 2008
Tags: ,
  1. Nov 28th, 2008 at 21:22 | #1

    Merhaba hocam,
    ben yukarıda bahsettiğiniz yöntemle RichFacess kullanmaya çalışıyorum. Adımlar şöyle;
    - Önce yeni bir JSF proje açıyorum,
    - Sonra http://www.jboss.org/jbossrichfaces/downloads/ adresinden richfaces-ui-3.2.2.GA-bin.tar.gz dosyasını indiriyorum,
    - Dosyanın içinden çıkan richfaces-api-3.2.2.GA.jar, richfaces-impl-3.2.2.GA.jar ve richfaces-ui-3.2.2.GA.jar dosyalarının WEB_INF/lib klasörüne atıyorum. Sonra jsp dosyayı tekrar çalıştırdığım sorun çıkıyor.
    Tomcat log’unda SEVERE: Context [/Rich2] startup failed due to previous errors gibi bir hata mesajı var.
    Tomcat 6 kullanıyorum, acaba versiyon uyuşmazlığı gibi bir durum sözkonusu olabilir mi?

    Teşekkürkler…

  2. Nov 28th, 2008 at 22:08 | #2

    web.xml de ilgili degisikligi yaptiniz mi ?

  3. Gokhan
    Aug 29th, 2010 at 11:25 | #3

    Merhabalar Hocam jsf2 faceletsde yapacagım proje için richfaces kullanmak istiyorum fakat ajax uygulamalarında
    “Tag Library supports namespace: http://richfaces.org/a4j, but no tag was defined for name: support” hatası veriyor 2 gundur ugrasıyorum bir türlü çözemedim acaba richfaces 3 serisi jsf2 de ajax uygulamalarını desteklemiyor mu?Hocam cevap verirseniz cok sevinirim. Cunku jsf1.2 de calıstırıyor.??

  4. Aug 29th, 2010 at 11:56 | #4

    Sanirim burada 4.0 versiyonunu kullanmaniz gerekiyor.

  5. Gokhan
    Aug 29th, 2010 at 23:36 | #5

    Teşekkür ederim hocam, 4.0 versiyonunu denedim ancak bir türlü çalıştıramadım müsait bir zamanda bununla ilgili anlaşılır bir dokuman yayınlayabilirseniz eger sanırım dunyada ilk olursunuz cunku bu konu ile ilgili hemen hemen hic dokuman bulamadım…

  6. Sep 2nd, 2010 at 02:02 | #6

    hocam elinize sağlık faydalı oldu benim için.

  7. Firat Turan
    Mar 22nd, 2011 at 12:13 | #7

    Melih Bey Merhabalar,
    Web sitenizden JSF ortaminda richfaces kullanimi hakkindaki yazinizi inceledik. Yazinizda belirttiklerinizi adim adim takip edip uygulamamizda denedik.
    Uygulamamiz jsf ortaminda calismaktadir ve jsf componenti icin gerekli jarlari icermektedir.
    Ancak Richfaces ile ilgili belirttiginiz jarlari uygulamada WEB-INF\lib\ klasoru altina kopyaladigimizda XML parser ve sayfalar icin renderer hatalarini aliyoruz.
    Richfaces jarlarini lib klasoru altina kopyalarken onceden kullandigimiz jsf jarlarini (jsf-impl, jsf-ui) kaldirmiyoruz. Cunku halihazirda bu jarlari uygulama kullaniyor.
    Richfaces jarlarini kaldirincada parser ve render hatalari gelmiyor ve uygulama calisiyor. Yaptigimiz islem sadece jarlari WEB-INF\lib\ kopyalamakti, kopyaladiktan sonra jarlari bi ekranda kullanmadik.
    JSF’yi kullanan bir uygulamada ekstra RichFaces jarlari ekleyerek JSP sayfalarinda kullanabilmek icin neler yapabiliriz?
    JSF jarlari ile RichFaces jarlari cakisiyorlar mi acaba?
    Cok tesekkurler,iyi calismalar.

  8. Mar 22nd, 2011 at 13:05 | #8

    RichFaces JSF kutuphanelerine ihtiyac duyar tek basina bir jsf implementasyonu degildir. Bu yuzden jarlarda bir sorun oldugunu dusunmuyorum. Yanliz kullandiginiz versiyon nedir ?

  9. Firat Turan
    Mar 22nd, 2011 at 16:28 | #9

    Eclipse Galileo IDE ve Tomcat5.5 server uzerinde calisan uygulamamizda, JSF-1.2 jarlari ile birlikte richfaces icin 3.3.2 jarlarini kullanmaktayiz.
    -richfaces-api-3.3.2.GA.jar
    -richfaces-impl-3.3.2.GA.jar
    -richfaces-ui-3.3.2.GA.jar
    Calisan uygulamaya sadece richfaces’in jarlarini ekledik.
    Alinan hatamiz:

    org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext-TxnDefinitions.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext-TxnDefinitions.xml] cannot be opened because it does not exist
    java.io.FileNotFoundException: class path resource [applicationContext-TxnDefinitions.xml] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:137)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:167)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:129)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:145)
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:113)
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:81)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:89)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:262)
    at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:87)
    at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:72)
    at com.isbank.wb.context.WBContext.initSrvWorkstationSession(WBContext.java:1052)
    at com.isbank.wb.context.WBContext.contextInitialized(WBContext.java:1043)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3795)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4252)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    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:295)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
    2011-03-22 16:22:13,427 [IsbankWB] DEBUG [main] WBContext.initSrvWorkstationSession(1059) | Error creating workstation session : IOException parsing XML document from class path resource [applicationContext-TxnDefinitions.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext-TxnDefinitions.xml] cannot be opened because it does not exist
    2011-03-22 16:22:13,632 [IsbankWB] DEBUG [main] WBContext.readEnvironmentalValues(1154) | Reading environmental values
    Environmental values file found
    Environmental Values :

    TEST
    false
    true
    1200

    java.lang.Exception: You have not add a spring config file
    at com.isbank.wb.context.ServiceContext.runService(ServiceContext.java:153)
    at com.isbank.wb.context.dictionary.impl.NewSrvDictionayImpl$CacheRefresher.run(NewSrvDictionayImpl.java:132)
    at java.lang.Thread.run(Unknown Source)
    2011-03-22 16:22:13,654 [IsbankWB] ERROR [Thread-1] NewSrvDictionayImpl$CacheRefresher.run(150) | java.lang.Exception: You have not add a spring config file
    2011-03-22 16:22:14,060 [IsbankWB] ERROR [main] Digester.error(1439) | Parse Error at line 5 column 17: Element type “faces-config” must be declared.
    org.xml.sax.SAXParseException: Element type “faces-config” must be declared.
    at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1213)
    at org.apache.xerces.validators.common.XMLValidator.reportRecoverableXMLError(XMLValidator.java:1807)
    at org.apache.xerces.validators.common.XMLValidator.validateElementAndAttributes(XMLValidator.java:3633)
    at org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:1229)
    at org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1806)
    at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:949)
    at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
    at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
    at org.apache.commons.digester.Digester.parse(Digester.java:1548)
    at com.sun.faces.config.ConfigureListener.parse(ConfigureListener.java:1208)
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:321)

  10. Firat Turan
    Mar 22nd, 2011 at 16:31 | #10

    Yukarida gonderdigim log belki biraz karisik oldu diye consola gelen hatalardan bir ornegini asagida gonderiyorum.

    2011-03-22 16:22:14,077 [IsbankWB] ERROR [main] Digester.error(1439) | Parse Error at line 34 column 22: Element type “renderer-type” must be declared.
    org.xml.sax.SAXParseException: Element type “renderer-type” must be declared.
    at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1213)
    at org.apache.xerces.validators.common.XMLValidator.reportRecoverableXMLError(XMLValidator.java:1807)
    at org.apache.xerces.validators.common.XMLValidator.validateElementAndAttributes(XMLValidator.java:3633)
    at org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:1229)
    at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1171)
    at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
    at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
    at org.apache.commons.digester.Digester.parse(Digester.java:1548)
    at com.sun.faces.config.ConfigureListener.parse(ConfigureListener.java:1208)
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:321)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3795)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4252)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    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:295)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>