Skip to content

1. Giriş

1.1. Présentation

Bu belgenin PDF değeri |BURADA|'tir.

Bu belgedeki örnekler |BURADA| adresinde mevcuttur.

Burada, örnekler yardımıyla

  • Java Server Faces 2 (JSF2) çerçevesini tanıtmayı,
  • JSF2 için PrimeFaces bileşen kütüphanesini, masaüstü ve mobil uygulamalar için tanıtmayı amaçlıyoruz.

Bu belge, esas olarak PrimeFaces ve [http://www.primefaces.org] bileşen kütüphaneleriyle ilgilenen öğrenciler ve geliştiricilere yöneliktir. Bu çerçeve, masaüstü uygulamalarına benzer bir görünüm ve davranışa sahip web uygulamaları oluşturmaya olanak tanıyan, AJAX özellikli onlarca bileşen ([http://www.primefaces.org/showcase/ui/home.jsf]) sunmaktadır. PrimeFaces, JSF2'e dayanmaktadır; bu nedenle öncelikle bu çerçeveyi tanıtmamız gerekmektedir. PrimeFaces ayrıca mobil cihazlara özel bileşenler de sunmaktadır. Bunları da ele alacağız.

Konuyu örneklemek amacıyla, farklı ortamlarda bir randevu alma uygulaması geliştireceğiz:

  1. Glassfish 3.1 sunucusunda JSF2 / EJB3 / JPA teknolojilerini kullanan klasik bir web uygulaması,
  2. PrimeFaces teknolojisiyle aynı uygulamanın AJAX uyumlu versiyonu,
  3. ve son olarak, PrimeFaces Mobile teknolojisini kullanan bir mobil sürüm.

Her sürüm oluşturulduğunda, bunu bir Tomcat 7 sunucusu üzerinde JSF2 / Spring / JPA ortamına taşıyacağız. Böylece altı adet EE Java uygulaması oluşturacağız.

Bu belge, yalnızca bu uygulamaları derlemek için gerekli olan bilgileri içermektedir. Dolayısıyla, belgede kapsamlı bir bilgi aramamalıyız. Böyle bir şey bulamayacağız. Bu belge aynı zamanda bir iyi uygulamalar derlemesi de değildir. Deneyimli geliştiriciler, bazı şeyleri farklı şekilde yapabileceklerini düşünebilirler. Umarım bu belge, kötü uygulamaların bir derlemesi de değildir.

JSF2 ve PrimeFaces konularını daha derinlemesine incelemek için aşağıdaki referans adresleri kullanılabilir:

  • [ref1]: Java EE5 Eğitimi [http://java.sun.com/javaee/5/docs/tutorial/doc/index.HTML], Java EE5'i keşfetmek için Sun referansı. Web teknolojisini ve özellikle JSF'i keşfetmek için II ve [Web Tier] bölümlerini okuyabilirsiniz. Öğreticideki örnekler indirilebilir. Bu örnekler, yüklenip çalıştırılabilen NetBeans projeleri biçimindedir,
  • [ref2]: David Geary ve Cay S. Horstmann’ın yazdığı Core JavaServer Faces kitabı, üçüncü baskı, Mc Graw-Hill yayınevi,
  • [ref3]: PrimeFaces [http://primefaces.googlecode.com/files/primefaces_users_guide_3_2.pdf] belgeleri,
  • [ref4]: PrimeFaces Mobile: [http://primefaces.googlecode.com/files/primefaces_mobile_users_guide_0_9_2.pdf] belgeleri.

Bazen, okuyucuya bu kitapla bir konuyu daha derinlemesine inceleyebileceğini belirtmek için [ref2]'e atıfta bulunacağız.

Bu belge, mümkün olduğunca geniş bir kitle tarafından anlaşılabilir şekilde yazılmıştır. Anlamak için gerekli ön koşullar şunlardır:

  • Java diline ilişkin bilgi,
  • Java geliştirme konusunda temel bilgiler EE.

[http://developpez.com] sitesinde bu önkoşullar için gerekli tüm kaynaklar bulunabilir. Bunların bir kısmı [http://tahe.developpez.com] sitesinde de mevcuttur:

1.2. 'daki örnekler

Bu belgedeki örnekler, hem NetBeans hem de Eclipse için Maven projeleri biçiminde URL ve [BURADA] adreslerinde mevcuttur:

  

NetBeans'te bir projeyi içe aktarmak için:

  • [1]'te bir proje açılır,
  • [2]'te, dosya sisteminde açılacak projeyi seçin,
  • [3]'te proje açılır.

Eclipse'te ise,

  • [1]'te bir proje içe aktarılır,
  • [2]'te proje mevcut bir Maven projesidir,
  • [3]'te: dosya sisteminde belirtilir,
  • [4]'te: Eclipse bunu bir Maven projesi olarak tanır,
  • [5], içe aktarılan proje.

1.3. Kullanılan araçlar

Bundan sonra (Mayıs 2012) şunları kullanıyoruz:

  • IDE (Entegre Geliştirme Ortamı) NetBeans 7.1.2 (URL [http://www.netbeans.org] adresinden indirilebilir),
  • IDE Eclipse Indigo [http://www.eclipse.org/], özelleştirilmiş haliyle SpringSource Tool Suite (STS) [http://www.springsource.com/developer/sts],
  • PrimeFaces'in 3.2 sürümü, URL ve [http://primefaces.org/]'te mevcuttur,
  • PrimeFaces Mobile'ın 0.9.2 sürümü, URL ve [http://primefaces.org/]'te mevcuttur,
  • WampServer için SGBD, MySQL ve [http://www.wampserver.com/].

1.3.1. IDE NetBeans'in kurulumu

Burada, URL ve [http://netbeans.org/downloads/]'te bulunan NetBeans 7.1.2'nin kurulumunu anlatıyoruz.

 

Yukarıdaki bağlantıdan, GlassFish 3.1.2 ve Apache Tomcat 7.0.22 sunucularını içeren Java sürümü EE'i indirebilirsiniz. İlki, EJB3 (Enterprise Java Bean) kullanarak EE Java uygulamaları geliştirmeye olanak tanır; diğeri ise EJB olmadan EE Java uygulamaları geliştirmeye olanak tanır. Bunun üzerine EJB'leri Spring [http://www.springsource.com/] çerçevesiyle değiştireceğiz.

NetBeans yükleyicisi indirildikten sonra çalıştırılacaktır. Bunun için JDK (Java Development Kit) ve [http://www.oracle.com/technetwork/java/javase/overview/index.HTML] gereklidir. NetBeans 7.1.2'nin yanı sıra şunlar da kurulacaktır:

  • birim testleri için JUnit çerçeve programı,
  • Glassfish 3.1.2 sunucusu,
  • Tomcat 7.0.22 sunucusu.

Kurulum tamamlandıktan sonra NetBeans'i başlatın:

  • [1]'te, NetBeans 7.1.2'de üç sekme bulunur:
  • [Projects] sekmesi, açık NetBeans projelerini gösterir;
  • [Files] sekmesi, açık NetBeans projelerini oluşturan çeşitli dosyaları gösterir;
  • [Services] sekmesi, NetBeans projeleri tarafından kullanılan bir dizi aracı bir araya getirir;
  • [2]'te [Services] sekmesi etkinleştirilir ve [3]'te [Servers] dalı etkinleştirilir,
  • [4] komutuyla, Tomcat sunucusunu başlatarak kurulumun doğru yapıldığını kontrol ediyoruz,
  • [6]'te, [Apache Tomcat] ve [5] sekmelerinde sunucunun doğru şekilde başlatıldığını kontrol edebiliriz,
  • [7]'te Tomcat sunucusunu durduruyoruz,

Aynı şekilde Glassfish 3.1.2 sunucusunun doğru kurulduğunu da kontrol edebiliriz:

  • [8] komutuyla Glassfish sunucusunu başlatırız,
  • [9] komutuyla sunucunun düzgün bir şekilde başlatıldığını kontrol ederiz,
  • [10]'te sunucuyu durduruyoruz.

Artık çalışır durumda bir IDE'e sahibiz. Projeler oluşturmaya başlayabiliriz. Bu projelere göre, IDE'in çeşitli özelliklerini detaylı olarak ele alacağız.

Şimdi IDE Eclipse'i kuracağız ve bu ortamda az önce indirdiğimiz Tomcat 7 ve Glassfish 3.1.2 sunucularını kaydedeceğiz. Bunun için bu iki sunucunun kurulum klasörlerini bilmemiz gerekiyor. Bu bilgileri her iki sunucunun özelliklerinde bulabiliriz:

  • [1]'te Tomcat 7'nin kurulum klasörü,
  • ise [2], Glassfish sunucusunun etki alanı klasörüdür. Eclipse'teki Glassfish kaydında, yalnızca şu bilgiyi girmelisiniz: [D:\Programs\devjava\Glassfish\glassfish-3.1.2\glassfish].

1.3.2. Eclipse'in IDE Kurulumu

Eclipse, bu belgede kullanılan IDE sürümü olmasa da, yine de kurulumunu anlatacağız. Zira belgedeki örnekler, Eclipse için Maven projeleri biçiminde de sunulmaktadır. Eclipse, Maven ile önceden entegre olarak gelmez. Bunu yapmak için bir eklenti yüklemeniz gerekir. Temel Eclipse sürümünü yüklemek yerine, Spring çerçevesiyle ilgili birçok eklentinin yanı sıra önceden yüklenmiş bir Maven yapılandırmasına da sahip olan SpringSource Tool Suite [http://www.springsource.com/developer/sts]'i yükleyeceğiz.

  • SpringSource Tool Suite (STS) [1], STS [2A] [2B] sürümlerini indirmek için,
  • İndirilen dosya, [3A] ve [3B] dosya dizinlerini oluşturan bir yükleyicidir. [4]'te yürütülebilir dosya çalıştırılır,
  • [5]'te, karşılama penceresi kapatıldıktan sonra IDE'in çalışma penceresi açılır. [6]'te, uygulama sunucuları penceresi görüntülenir,
  • [7]'te sunucu penceresi görüntülenir. Bir sunucu kaydedilmiştir. Bu, kullanmayacağımız bir VMware sunucusudur. [8]'te yeni sunucu ekleme sihirbazı çağrılır,
  • [9A]'te çeşitli sunucular önerilir. Apache Tomcat 7 sunucusunu kurmayı seçiyoruz ([9B]),
  • [10], NetBeans ile birlikte kurulan Tomcat 7 sunucusunun kurulum klasörünü belirleriz. Tomcat sunucunuz yoksa, [11] düğmesini kullanın,
  • [12] düğmesini kullanın; Tomcat sunucusu [Servers] penceresinde görünür,
  • [13]'te sunucuyu başlatırız,
  • [14]'te sunucu çalışır durumda,
  • [15]'te, sunucuyu durduruyoruz.

[Console] penceresinde, her şey yolunda giderse Tomcat'ten aşağıdaki günlükleri alırız:

mai 26, 2012 8:56:51 AM org.apache.catalina.core.AprLifecycleListener init
Infos: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: ...
mai 26, 2012 8:56:55 AM org.apache.coyote.AbstractProtocol init
Infos: Initializing ProtocolHandler ["http-bio-8080"]
mai 26, 2012 8:56:55 AM org.apache.coyote.AbstractProtocol init
Infos: Initializing ProtocolHandler ["ajp-bio-8009"]
mai 26, 2012 8:56:55 AM org.apache.catalina.startup.Catalina load
Infos: Initialization processed in 4527 ms
mai 26, 2012 8:56:55 AM org.apache.catalina.core.StandardService startInternal
Infos: Démarrage du service Catalina
mai 26, 2012 8:56:55 AM org.apache.catalina.core.StandardEngine startInternal
Infos: Starting Servlet Engine: Apache Tomcat/7.0.22
mai 26, 2012 8:56:57 AM org.apache.catalina.util.SessionIdGenerator createSecureRandom
Infos: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [218] milliseconds.
mai 26, 2012 8:56:57 AM org.apache.coyote.AbstractProtocol start
Infos: Starting ProtocolHandler ["http-bio-8080"]
mai 26, 2012 8:56:57 AM org.apache.coyote.AbstractProtocol start
Infos: Starting ProtocolHandler ["ajp-bio-8009"]
mai 26, 2012 8:56:57 AM org.apache.catalina.startup.Catalina start
Infos: Server startup in 2252 ms
  • Yine [Servers] penceresinde, [16] adlı yeni bir sunucu eklenir,
  • [17]'te Glassfish sunucusu önerilmez;
  • bu durumda [18] bağlantısını kullanıyoruz,
  • [19]'te, Glassfish sunucusu için bir adaptör eklemeyi seçiyoruz,
  • bu indirildikten sonra [Servers] penceresine geri dönülür ve yeni bir sunucu eklenir,
  • bu sefer [21]'te Glassfish sunucuları önerilir,
  • [22] penceresinde, NetBeans ile indirilen Glassfish 3.1.2 sunucusunu seçiyoruz,
  • [23]'te, Glassfish 3.1.2'nin kurulum klasörünü belirleyin ([24]'te belirtilen yola dikkat edin),
  • Glassfish sunucunuz yoksa [25] düğmesini kullanın,
  • [26] adımında, sihirbaz Glassfish sunucusunun yönetici şifresini sorar. İlk kurulumda bu şifre normalde adminadmin'tir,
  • sihirbaz tamamlandığında, [Servers] penceresinde Glassfish sunucusu [27],
  • [28]'te, onu başlatırız,
  • [29]'te bir sorun ortaya çıkabilir. Bu, kurulum sırasında girilen bilgilere bağlıdır. Glassfish, JDK (Java Development Kit) gerektirir, JRE (Java Runtime Environment) değil,
  • Glassfish sunucusunun özelliklerine erişmek için, [Servers] penceresinde üzerine çift tıklayın,
  • [20] penceresi açılır; burada [Runtime Environment] bağlantısını takip edin,
  • [31]'te, varsayılan olarak kullanılan JRE'i bir JDK ile değiştireceğiz. Bunun için [32] bağlantısını kullanırız,
  • [33]'te, makineye yüklü olan JRE'leri,
  • [34]'te ise bir tane daha eklenir,
  • [35]'e, [Standard VM]'i (Sanal Makine) seçin,
  • [36]'te, JDK (>=1.6) seçilir,
  • [37]'te, yeni JRE'e verilen ad,
  • Glassfish için JRE seçeneğine geri döndüğümüzde, [38] olarak bildirilen yeni JRE'i seçiyoruz,
  • kurulum sihirbazı tamamlandıktan sonra, [Glassfish] ve [39]'i yeniden başlatıyoruz,
  • [40]'te başlatılır,
  • [41]'te sunucu dizin yapısı,
  • [42]'e, Glassfish günlüklerine erişilir:
...
Infos: Running GlassFish Version: GlassFish Server Open Source Edition 3.1.2 (build 23)

Infos: Grizzly Framework 1.9.46 started in: 125ms - bound to [0.0.0.0:7676]
Infos: Grizzly Framework 1.9.46 started in: 125ms - bound to [0.0.0.0:3700]
Infos: Grizzly Framework 1.9.46 started in: 188ms - bound to [0.0.0.0:8080]
Infos: Grizzly Framework 1.9.46 started in: 141ms - bound to [0.0.0.0:4848]
Infos: Grizzly Framework 1.9.46 started in: 141ms - bound to [0.0.0.0:8181]
Infos: Registered org.glassfish.ha.store.adapter.cache.ShoalBackingStoreProxy for persistence-type = replicated in BackingStoreFactoryRegistry

Infos: GlassFish Server Open Source Edition 3.1.2 (23) heure de démarrage : Felix (13 790 ms), services de démarrage (2 028 ms), total (15 818 ms)

Infos: JMX005: JMXStartupService had Started JMXConnector on JMXService URL service:jmx:rmi://Gportpers3.ad.univ-angers.fr:8686/jndi/rmi://Gportpers3.ad.univ-angers.fr:8686/jmxrmi
  • [43] ile Glassfish sunucusunu durduruyoruz.

1.3.3. [WampServer] kurulumu

[WampServer], bir Windows makinesinde PHP / MySQL / Apache üzerinde geliştirme yapmak için kullanılan bir yazılım paketidir. Bunu yalnızca SGBD ve MySQL için kullanacağız.

  • [WampServer] [1] sitesinden uygun sürümü seçin [2],
  • İndirilen dosya bir kurulum programıdır. Kurulum sırasında çeşitli bilgiler istenir. Bu bilgiler MySQL ile ilgili değildir. Dolayısıyla bu bilgileri göz ardı edebilirsiniz. Kurulumun sonunda [3] penceresi görüntülenir. [WampServer]'i çalıştırın,
  • [4]'e dönüştürülür; [WampServer] simgesi, ekranın sağ alt köşesindeki görev çubuğuna yerleştirilir; [4],
  • üzerine tıklandığında [5] menüsü görüntülenir. Bu menü, Apache sunucusunu ve SGBD ile MySQL'i yönetmeye olanak tanır. Bunu yönetmek için [PhpPmyAdmin] seçeneğini kullanırız;
  • böylece aşağıdaki pencere açılır,

Image

[PhpMyAdmin]'in kullanımı hakkında fazla ayrıntıya girmeyeceğiz. Sadece bu öğreticideki örnek uygulamanın veritabanını oluşturmak için nasıl kullanılacağını göstereceğiz.