JBoss Seam geliştirme ortamı kurulumu

Bu yazıyla ilgili güncellenmiş versiyon aşağıdaki linkte bulunmaktadır.
http://www.melihsakarya.com/2011/06/seam-gelistirme-ortami-kurulumu-yeni-versiyon

JBoss Seam ile uygulama geliştirmek basit olduğu gibi uygulama geliştirme ortamı hazırlamakta gayet kolaydır. Bendeki versiyonları kullanarak bir uygulama geliştirme ortamı hazırlamayı ve ilk uygulamayı geliştirmeyi anlatmaya çalışacağım.

Uygulama geliştirken 1.5 ve üzeri bir sürüm kullanabilirsiniz ilgili jvm in ortamınızda kurulu olduğunu varsayıyorum. Bununla ilgili internet ortamında dökümanlar bulabilirsiniz.

Kurulum için elimizdeki dosya listesi aşağıdaki gibi. (Download adresleri yazının en altında bulunuyor.)

eclipse-jee-europa-winter-win32 (core eclipse)
jboss-4.2.2.GA (JBoss application server)
jboss-seam-2.0.3.CR1 (Seam runtime)
JBossTools-2.1.2.GA-ALL-win32 (JBoss Tools plugin)
wtp-P-P20080327032254-20080327032254 (eclipse fix – sizdeki versiyona gore gerek olmayabilir)
mysql-connector-java-5.1.6-bin.jar (mysql jdbc driver)

Uygulama geliştirirken eclipse ve plugin olarak “JBoss Tools” kullanacağız. Proje dizini olarak “c:\dev\” dizinini belirledik sizde farklı bir dizinde olabilir.
Öncelikle “eclipse-jee-europa-winter-win32″ (bu ganymede sürümüde olabilir) altındaki “eclipse” klasörünü c:\dev\ dizini altına kopyalıyalım. Kopyalama işlemi sonrasında “JBossTools-2.1.2.GA-ALL-win32″ klasörü içerisindeki eclipse klasörünü yine c:\dev\ altına kopyalıyorum. Bu durumda bazı dosyaların ezileceğini belirten aşağıdaki gibi bir uyarı alabiliriz buna “Yes to All” deyip geçelim.



Eclipse ve JBoss Tools herhangi bir kurulum sureci gerektirmediginden direk olarak eclipse i çalıştıracağız. Bunun için “c:\dev\eclipse\” altındaki “eclipse.exe” dosyasını çalıştırıyoruz. Eclipse açılıp bize ilgili workspace alanımızı belirtmemizi isteyecektir yeni bir tane yaratacağımızdan aşağıdaki ekrandaki gibi c:\dev\workspace olarak bir dizin belirliyoruz bu alan artık bizim projelerimiz için bir çalışma alanı olacaktır.



Workspace tanımlanıp Eclipse geliştirme ortamı açıldığında aşağıdaki gibi bir ekranla karşılaşacağız aşağıdaki gibi en sağdan Workbench i seçiyoruz.




Şimdi geliştirme ortamımız aşağıdaki gibi görünecektir.



Öncelikle bir JBoss u tanımlak için sunucu tanımlıyoruz bunun için File > New > Other diyoruz buradan Server sekmesinden yine server ı seçiyoruz ve next butonuna tılayıp ilerliyoruz. Şimdi sunucumuzu seçmemiz gerekiyor. Biz uygulama geliştirirken JBoss Application Server kullanacağız elimizdeki versiyon 4.2 aşağıdaki gibi “JBoss AS 4.2″ yi seçip next diyoruz.
jbossseamkurulum


Şimdi kullanacağımız uygulama sunucusu dizinini göstermemiz gerekiyor ancak öncelikle JBoss klasörünü “c:\dev” dizini altına kopyalamış olmamız gerekiyor. Eclipse ekranında “Home Directory” alanından browse deyip JBoss dizinini gösteriyoruz. Bindeki hali “C:\dev\jboss-4.2.2.GA\” sizdekide aynı versiyon ise muhtemelen aynı dizin olacaktır. Ekran görüntüsü aşağıdaki gibidir.



Bundan sonraki adımları next ve finish diyerek geçebiliriz. Bu durumda JBoss Application Server eclipse ortamında tanımlı olacaktır. Eclipse ortamında alt taraftaki tab lardan server içerisinde JBoss u göreceksinizdir aşağıdaki ekran görüntüsündeki gibi JBoss un üzerine sag tuşla tıklayıp start dediğimizde JBoss başlatılacaktır.



Eğer JBoss AS başarılı bir şekilde başlatılmışssa State alanı “Started” olarak görünecektir ayrıca Console tabında aşağıdakine benzer bir sonuç almalıyız.

22:28:17,046 INFO [Server] JBoss (MX MicroKernel) [4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)] Started in 29s:843ms



Artık uygulama sunucumuz hazır bekliyor bu aşamada yeni bir Seam projesi tanımlayacağız. Adımların ekran görütüleri alt satırlarında bulunuyor.
File>New>Other ı seçiyoruz çıkan listeden aşağıdaki gibi Seam altından “Seam Web Project” i seçip next deyip ilerleyelim.



Şimdi “project Name” alanından yeni bir proje ismi verelim ben “demo” isminde bir proje oluşturuyorum “Target Runtime” ve “Target Server” kısımları muhtemelen “JBoss 4.2″ olarak görünüyordur bunu böyle bırakalım, “Configurations” kısmını “Dynamic Web Project with Seam 2.0″ olarak seçmemiz gerekiyor bu ilgili Seam versiyonunu ifade ediyor biz ilgili örneklerde Seam 2.x versiyonunu kullanacağız.



Şimdiki adımda ilgili versiyonları isteyecektir şimdilik önemli değil next deyip geçelim.



Web modülleriyle ilgili ekranada müdahale etmeden next deyip ilerleyelim.



Şimdiki ekranda JSF ve seam ile ilgili tanımlarda bir değişiklik yapıp yapmayacağımızı ilgili JSF implementasyonunu değiştirip değiştirmeyeceğimizi soruyor. Bu ekranda da değişiklik yapmayıp next diyelim.



Şimdiki ekranda bazı değişiklikler yapmamız gerekiyor. Öncelikle “Seam Runtime” yazan alanda bir combo box gorünüyor eğer yeni kurulum yapıyorsak tanımlı bir seam runtime bulunmayacaktır hemen yan tarafındaki “Add” butonuna tıklayalım.



Açılan pencerede yeni bir “Seam Runtime” tanımlayacağız. “Home Folder” alanında browse deyip ilgili seam dizinini gösterelim ancak bunun için öncelikle “jboss-seam-2.0.3.CR1″ klasörünü “c:\dev\” dizini altına atmış olmamız gerekiyor eğer varsa “c:\dev\jboss-seam-2.0.3.CR1″ alanını burada gösteriyoruz. Bu durumda name ve version alanları kendi alacaktır. Finish deyip bu işlemi tamamlıyoruz.



“Seam Runtime” alanı artık dolu gelecektir. “Deploy as” alanını ear veya war seçebilirsiniz seam için illa bir ejb container a ihtiyaç yoktur ancak biz session bean ler vs… kullanacağımız iöin burada bir ear projesi oluşturacağız bunun için ear seçeneğini seçiyoruz.
Veritabanı olarak ben mysql kullanacağım jpa tabanlı bir uygulama yapacağımızdan hangi veritabanı ile çalıştığımız çok önemli değil. “Database Type” olarak “MqSql 5″ i seçiyorum. “Connection Profile” olarak daha önce bir tanım yapmadığımızdan new deyip yeni bir veritabanı bağlantısı oluşturuyoruz.
Açılan ekrandan “Generik JDBC Connection” ı seçiyoruz ve next deyip ilerliyoruz.



Şimdiki adımda Name kısmına bağlantı ismi vereceğiz buna “deneme” diyelim ve next ile ilerleyelim.



Şimdi bizden ilgili bağlantıyı seçmemizi isteyecektir bizim daha önceden tanımlı bir jdbc bağlantımız olmadığından listenin hemen yanındaki “…” butonuna tıklıyoruz.



Açılan pencereden ilgili veritabanını seçeceğiz ben “MySql 5″ kullandığımdan bunu seçiyorum ancak veritabanı bağımsız çalışacağımızdan siz istediğinizi seçebilirsiniz. Seçim sonucunda “Add” butonuna tıklayıp devam ediyoruz.



Açılan pencereden “Database” -> “MySql” -> “5.0″ -> “MySQL JDBC Driver” ı seçiyoruz.



Yeni bir pencere açılacaktır burada ilgili JDBC Driver jar ını göstereceğiz “Add Jar/Zip” butonuna tıklayıp daha önceden “c:\dev” altına attığımız “mysql-connector-java-5.1.6-bin.jar” (veya sizdeki versiyon) dosyasını gösterelim. Seçtiğimiz anda ekleme işlemi yapılacaktır üst kısımdaki diğer driver tanımını silelim.
Ok deyip bu bölümü geçelim eski ekrandaki MySql->5.0 altında yeni oluşan “MySql JDBC Driver” seçeneğini seçip yine ok dediğimizde driver tanımı yapılmış olacaktır.



Şimdi URL kısmında “jdbc:mysql://localhost:3306/database” yazan bölümde database yerine ilgili catalog ismini verelim bende deneme isminde bir katalog mevcut yeni hali “jdbc:mysql://localhost:3306/deneme” şeklinde olması gerekiyor. Username Password kısımlarına ilgili veritabanı bilgilerini yazalım. Son olarak sağ altta bulunan “Test Connection” butonuna tıklayalım bu durumda “Ping Succeeded!” sonucunu almamız gerekiyor aksi durumda “Ping failed!” yanıtını alırız bu durumda veritabanı bağlantı bilgilerimizi tekrar kontrol etmemiz gerekir. Eğer sonuç başarılıysa next deyip ilerleyelim.


Bağlanı işlemleri için son adımda bize veritabanı ile ilgili bilgilerimizi gösterecektir bunların doğru olduğunu düşünerek finish diyoruz ve ilgili adımları tamamlıyoruz.


Seam projemizin tüm adımlarını tamamladık sayılır son ekranda “Code Generation” kısmında package isimlerini değiştirebilirsiniz. Seam projesi içerisinde yer alan seam-gen projesi ile kod üretirken bu package lar dikkate alacaktır. Proje geliştirme esnasında da bunları değiştirme şansına sahibiz ancak ben aşağıdaki gibi bir tanımlama yaptım

com.mergeCons.demo.session
com.mergeCons.demo.entity
com.mergeCons.demo.test

Tüm bu tanımlamalardan sonra en sonunda finish deyip projemizi yaratıyoruz.



Artık projelerimiz oluştu hataları temizlemek için üst kısımda “Project” -> “Clean” diyelim tüm projeyi clean edelim.
Toplamda 4 proje göreceksiniz “demo” projesi ana projemiz olacak burada web uygulama tarafı bulunuyor; “demo-ear” ear ile ilgili tanımlar; “demo-ejb” ejb ilgili class lar, entityler ve session beanler, “demo-test” ise test classlarının bulunduğu projelerdir. İstersek bunu tek proje olarakta oluşturabiliriz.
Alt kısımda “Servers” tan “JBoss 4.2 Server” ın üzerinde sağ tuşla tıklayıp “clean” dersek projemizi JBoss AS üzerine deploy edecektir.
Deployment hatasız ise eclipse console ekranının aşığıdaki gibi bir çıktı ile sonlanması lazim.

20:01:23,218 INFO [EARDeployer] Started J2EE application: file:/C:/dev/jboss-4.2.2.GA/server/default/deploy/demo-ear.ear/

Artık projimizi oluşturduk firefox yada explorer da “http://localhost:8080/demo” yazarsak bize aşağıdaki gibi proje taslağı çıkaracaktır.



Web ortamında göründüğü gibi seam bize var olan template ile birlikte bazı şeyleri (örneğin login ekranlarını) hazır halde getirdi templateler üzerinde istediğimiz gibi oynayabiliriz. Seam ile gelen default arayüz facelet tir var olan xhtml ler ile oynayabilir yada yenilerini oluşturabiliriz.
Daha detaylı bilgi için aşağıdaki linke göz atabilirsiniz.
http://docs.jboss.com/seam/2.1.0.SP1/reference/en-US/html/


Umarım açıklayıcı bir anlatım olmuştur.


Kurulum dosyaları için download adresi

Eclipse http://www.eclipse.org/downloads/

JBoss Seam http://downloads.sourceforge.net/jboss/jboss-seam-2.0.3.CR1.zip?modtime=1213351466&big_mirror=1

JBoss Application Server http://www.jboss.org/jbossas/downloads/

MySql jdbc driver http://www.mysql.com/products/connector/j/

  1. hakdogan
    Nov 26th, 2008 at 23:00 | #1

    Elinize sağlık, gayet açıklayıcı hoş bir makale…

  2. Nov 26th, 2008 at 23:10 | #2

    Teşekkür yeni yazılar için önerilerinizi bekliyorum :)

  3. Fatih
    Nov 27th, 2008 at 00:34 | #3

    Ellerinize saglık Melih hocam…
    Seam + Hibernate ile proje oluşturmayı merakla bekliyoruz.
    şöyle bir buton bir textfield kullanarak kucuk bir databaseli demo, başta ben olmak uzere yeni başlayan herkesin ilgisini cezbedeceginden eminim.

  4. hakdogan
    Nov 27th, 2008 at 20:09 | #4

    Melih hocam, Seam noktasında Fatih arkadaşımızın önerisi güzel bir öneri, ancak ben “yeni yazı” olarak yeni tanıştığım ve bayağı sevimli bulduğum Apache Wicket konusunu önermek isterim.

    İnceleme imkanınız oldu ise Wicket konusu işlenmeye değer bir konu olarak görünüyor bana…

  5. Nov 29th, 2008 at 01:50 | #5

    Tesekkurler elinize saglik.

  6. melis
    Apr 30th, 2009 at 14:01 | #6

    mysql’in önceden kurulmus olmasi gerektigini saatler sonra farkettim.:(
    bu makaleyle jboss kuranlar varsa ve mysqlde sürekli olarak 1045 numarali hatayla karsilasiyorlarsa söyle gideriliyor.
    Konfigürasyon safhasinda son asamada anonim bir hesap aciliyor.Yeni sifre filan vermekle ugrasmayin.Sonra Start->Tüm Programlar->Mysql->Command Line
    mysql kosolunda sadece enter’a basip bu kodu giriyoruz.
    SET PASSWORD FOR ‘root’@'localhost’ = PASSWORD(‘tercihenyenibirsifre’);

    olur da birinin isine yarar.ben cok ugrastim.

  7. Serap Demir
    Oct 31st, 2010 at 14:13 | #7

    hocam selam bu makaleden jboss kurmaya çalışıyorum ama
    aşağıdaki ekran görüntüsünde bende configurations seçeneğinin içi boş çıkıyor. ve oradan sonrası zaten sizin ekran görüntülerinizle farklı çıkıyor
    http://www.melihsakarya.com/wp-content/jbossseamkurulum_9.gif
    nerde yanlış yapıyorum acaba söyleyebilirmisiniz

  8. Oct 31st, 2010 at 17:37 | #8

    Selamlar,
    JBoss Tools kurulu olmayabilir mi ? Veya Eclispe icin hangi ortami kullaniyorsunuz ?

  9. Serap Demir
    Oct 31st, 2010 at 17:45 | #9

    Hocam galileo kullanıyorum.
    jboss seam i sizin verdiğiniz linkten indirdim ve kopyaladım. sonrası hata anlattığım gibi. :(

  10. Oct 31st, 2010 at 22:29 | #10

    Galileo icin dogru jboss tools surumunu indirdiniz mi ? Surumlerle ilgili bir problem var sanirim ?

  11. Serap Demir
    Oct 31st, 2010 at 22:34 | #11

    Hocam ekran görüntüsünü aldımi lütfen bakabilirmisiniz
    http://img255.imageshack.us/img255/1500/adszbd.jpg

  12. Oct 31st, 2010 at 22:44 | #12

    Su anda problem gorunuyor. Driver i tanimlamaniz gerekiyor.

  13. Serap Demir
    Oct 31st, 2010 at 22:52 | #13

    Hocam ben ilk defa jsf ile uğraşıyorum driver ı nasıl tanımlayacağım, önce indirmem gereken bir şey varmı, ben drivers in yanındaki new driver e tıkladığımda aşağıdaki ekran geliyor ve devamını getiremiyorum, sizin anlattığınız şekle bir getirebilsem,
    http://img340.imageshack.us/img340/7507/adszad.jpg

  14. Oct 31st, 2010 at 22:57 | #14

    Selamlar,
    Hangi veritabanina baglanacaksaniz onun jdbc driver i ni yuklemeniz gerekiyor.

  15. Nov 9th, 2010 at 02:48 | #15

    Merhabalar Hocam,

    Bu kadar emek harcayarak bunları yazmanız dolayısıyla teşekkürler.Javadergisindede yazılarınızı okumaktayım.Benim sorunum herşey tamam hatta çalışıyor.Ama nedense visualeditörü kullanamıyorum.Şu şekilde hata veriyor nedeni ne olabilri?

    Could not open the Visual Page Editor: java.lang.NoSuchFieldException: NS_IWEBNAVİGATİON_IID

    ecilips sürümüm helios.

    Şimdiden tesekkürler…

  16. Nov 9th, 2010 at 08:02 | #16

    Selamlar,
    Eclipse ten kaynakli bir hata gibi gorunuyor. Dil ayarlariniz Turkce ise Ingilizce yapip deneyebilirsiniz.

  17. enes
    Nov 26th, 2010 at 19:41 | #17

    Could not open the Visual Page Editor: java.lang.NoSuchFieldException: NS_IWEBNAVİGATİON_IID

    hatası alıyorum sürümüm eclipse benimde , dili ingilizce yaptım ama yine aynı.
    teşekkürler

    Mehmet:
    Merhabalar Hocam,
    Bu kadar emek harcayarak bunları yazmanız dolayısıyla teşekkürler.Javadergisindede yazılarınızı okumaktayım.Benim sorunum herşey tamam hatta çalışıyor.Ama nedense visualeditörü kullanamıyorum.Şu şekilde hata veriyor nedeni ne olabilri?
    Could not open the Visual Page Editor: java.lang.NoSuchFieldException: NS_IWEBNAVİGATİON_IID
    ecilips sürümüm helios.
    Şimdiden tesekkürler…

  18. Erkan yildirim
    Dec 8th, 2010 at 14:14 | #18

    paylaşım için teşekkürle

  19. Rahman Yazgan
    Dec 19th, 2010 at 20:03 | #19

    Paylaşım için teşekkürler hocam.

    “Could not open the Visual Page Editor: java.lang.NoSuchFieldException: NS_IWEBNAVİGATİON_IID”

    Bu hatayı ben de JBoss Developer Studio 4.0 da alıyordum, Melih hocamın tavsiyesini uygulayıp sistemi yeniden başlattığımda sorun çözüldü.

    Buradaki kurulumlarla tek tek uğraşmak istemeyen arkadaşlar şu toplu paketi indirebilir(ücretsiz):

    http://devstudio.jboss.com/earlyaccess/

    “JBoss Developer Studio with EAP 5.1″ kurulumunu tavsiye ederim, diğerinden farkı JBoss Enterprise Application Server ile birlikte gelmesidir.

    İndirme aşamasında k.adı/şifre isteyecektir, üye olmakla uğraşmak istemeyenler aşağıdaki bilgileri kullanabilir:

    Kullanıcı adı: earlyaccess
    Şifre: b3ta$FTW!

  20. Dec 31st, 2010 at 15:26 | #20

    Jsf ve Seam Türkiye lansımanı konusunda göstermiş olduğunuz paylaşımlar ve emeğe teşekkür ederim hocam…
    Eclipse üzerinde ve JBoss Developer Studio üzerinde ilginç bir şekilde, OS’min dil ayarlarının İngilizceye çevirmeme rağmen “Could not open the Visual Page Editor: java.lang.NoSuchFieldException: NS_IWEBNAVİGATİON_IID” hatasını ısrarla alıyorum ve dolayısıyla Visual Editörü kullanamıyorum.
    Ispartada görüşmek üzere hocam :)

  21. Dec 31st, 2010 at 15:36 | #21

    Hocam local ayarlarinizi ingilizce yaparsaniz sanirim duzelecektir.

  22. Jan 3rd, 2011 at 19:26 | #22

    Hocam düzeldi, teşekkür ederim ilginize…

  23. can
    Feb 10th, 2011 at 15:01 | #23

    Hocam kaynak için teşekkürler…

    Son kısımda bu 4 projeyi tek proje olarak da oluşturabileceğimizden bahsetmiştiniz acaba bunu nasıl yapıyoruz yardımcı olabilir misiniz ?

  24. kirami
    Apr 5th, 2011 at 14:03 | #24

    hocam eline sağlık güzel olmuş, yalnız ben de ilk başta projeyi deploy etmedi ve şöyle bir hata verdi:
    file:/C:/dev/jboss-4.2.2.GA/server/default/deploy/demo-ear.ear/jboss-seam.jar could not be opened, does it exist?
    eğer yukarıda anlatılanları aynen deneyip bu hatayı alan arkadaşlar var ise çözümü şu şekilde yapabilirsiniz:
    C:\dev\jboss-seam-2.0.3.CR1\lib – altında jboss-seam.jar bulunmakta bu jar dosyasını hatada verilen lokasyona kopyalayın sorun çözülüyor.
    birazda bizim katkımız olsun :)

  25. Hasan
    Apr 30th, 2011 at 18:50 | #25

    Elinize sağlık hocam. Çok açık, yararlı bir makale olmuş.

  26. Hakan
    Jul 6th, 2011 at 09:42 | #26

    Hocam şu şekilde bir hata alıyorum. Tüm adımları gerçekleştirdim fakat çalıştıramadım.

    10:32:17,342 ERROR [AbstractKernelController] Error installing to Real: name=vfsfile:/D:/Ders/heliosx86/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1309864757092/deploy/demo-ear.ear/ state=PreReal mode=Manual requiredState=Real
    org.jboss.deployers.spi.DeploymentException: URL file:/C:/jboss-5.1.0.GA/server/default/tmp/5c4o2r-5mtfd9-gpryl5gv-1-gprylujk-9o/demo-ear.ear/demo.war/ deployment failed

  27. Jul 7th, 2011 at 19:35 | #27

    Hata konusunda biraz daha detay gerekiyor bunu ozelden mail atsaniz daha iyi olur.

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>