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>
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…
web.xml de ilgili degisikligi yaptiniz mi ?
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.??
Sanirim burada 4.0 versiyonunu kullanmaniz gerekiyor.
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…
hocam elinize sağlık faydalı oldu benim için.
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.
RichFaces JSF kutuphanelerine ihtiyac duyar tek basina bir jsf implementasyonu degildir. Bu yuzden jarlarda bir sorun oldugunu dusunmuyorum. Yanliz kullandiginiz versiyon nedir ?
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)
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)