J2ee Araclar Kurulum Oaslanturk Wwwjavadilicom

  • Uploaded by: www.javadili.com
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View J2ee Araclar Kurulum Oaslanturk Wwwjavadilicom as PDF for free.

More details

  • Words: 3,075
  • Pages: 21
J2EE Uygulamalarinin Gelistirilmesinde Kullanilabilecek Bazi

m

Araçlar ve Örnek Bir Örnek Uygulama Oguz Aslantürk - [email protected]

i.c o

14/09/2003

J2EE, çok katmanli, bilesen tabanli bir uygulama modeli sunar. Bu, farkli katmanlar için farkli teknolojiler kullanilmasi, birçok kod yazilmasi, bütün bu kodlarin da bir uygulama olusturmak üzere bir araya getirilmesi anlamina gelmektedir. Yazilan kodlarin sinanmasi, derlenmesi, uygulama sunucusunun gerektirdigi sekilde ilgili kilavuzlara kopyalanmasi ve gelistirme sirasinda olusabilecek her türlü degisiklik ya

dil

da ekleme sonucunda bu adimlarin tekrarlanmasi gerekmektedir. Bütün bu islemlerin otomatiklestiril(e)memesi durumunda, uygulama gelistiricilerinin harcadigi zamanin önemli bir kismi bu islemler için harcanacaktir. Dolayisiyla, J2EE düzlemi kullanilarak gelistirilecek bir uygulama için bazi araçlar kullanilmasi kaçinilmazdir.

va

Ayrica uygulamanin gelistirilmesi sirasinda bir de uygulama sunucusu gerekmektedir. J2EE uygulamalarinin düzlemden bagimsiz olma özellikleri göz önüne alindiginda, sunucuya özel çözümlere gidilmedigi sürece, J2EE standartlarini saglayan bütün uygulama sunucularinin, gelistirilen uygulamayi çalistirmak üzere kullanilabilecegi

ww w. ja

söylenebilir.

Günümüzde birçok farkli tümlesik gelistirme ortami, J2EE uygulamalari için gerekli olan

destegi

saglamakta

ve

birçok

farkli

uygulama

sunucusu

ile

tümlesik

çalisabilmektedir. Hangi aracin ve uygulama sunucusunun seçilecegi, uygulamayi gelistiren kurumun yaklasimina baglidir.

Bu belgede, bir J2EE uygulama gelistirme ortami olusturmak üzere kullanilabilecek bazi araçlardan bahsedilecektir. Bu araçlar, farkli araçlarla da çesitli sekillerde bir araya getirilebilirler ve yerlerine kullanilabilecek seçenekler de bulunmaktadir. Dolayisiyla bu belgenin bir basvuru olarak görülmesindense, bazi araçlari kisaca tanitan bir belge olarak degerlendirilmesi daha uygundur.

1

1. IÇINDEKILER IÇINDEKILER...................................................................................................................2

2.

XDoclet – http://xdoclet.sourceforge.net/ ............................................................3

3.

Apache Ant (Another Neat Tool) – http://ant.apache.org/...................................5

4.

JUnit – http://www.junit.org .......................................................................................6

5.

Apache Struts – http://jakarta.apache.org/struts/ ..............................................7

6.

JBoss – http://www.jboss.org...................................................................................9

7.

Eclipse – http://www.eclipse.org ...........................................................................10

8.

Kilavuz Yapisi ve Araçlarin Kurulmasi.......................................................................11

dil

i.c o

m

1.

Kilavuz Yapisi...................................................................................................................... 11 Araçlarin Kurulmasi ............................................................................................................. 12

Applications Alt Kilavuzunun Yapisi ...........................................................................14

va

9.

build.properties kütügü..............................................................................................17

11.

HelloWorld Uygulamasi ............................................................................................18

12.

KAYNAKLAR..............................................................................................................21

ww w. ja

10.

2

2. XDoclet – http://xdoclet.sourceforge.net/

mimarisinde

is

katmaninda

görev

alan

ve

m

Enterprise JavaBean (EJB) bilesenleri, J2EE uygulama modelinin çok katmanli hareket

yönetimi

(transaction

management), güvenlik (security), kaynak yönetimi (resource management), verinin

i.c o

kalicigili (persistence) gibi önemli servisleri saglayan bilesenlerdir. Ancak bu bilesenlerin gelistirilmesi, siradan JavaBeanlerin yazilmasindan biraz daha farklidir. Basit bir “HelloWorld” EJB bileseni için bile asagidaki kodlarin yazilmasi gerekmektedir: Enterprise Bean

??

Remote Interface / Local Interface

??

Home Interface / LocalHome Interface

??

Deployment Descriptor

??

Vendor-specific descriptor

dil

??

va

Görüldügü gibi, birçok kitabin en basit örnek olarak ilk önce anlattigi “HelloWorld” örnegi için bile en az 5 adet kütügün hazirlanmasi ve birlikte yönetilmesi gerekmektedir. Yani Enterprise Bean sinifinda yapilacak küçük bir degisiklik için ilgili arayüz sinif(lar)inin ve XML tabanli deployment descriptor ve/veya vendor-specific

ww w. ja

decriptor kütüklerinin güncellenmesi gerekir. Uygulama gelistirme asamalarinda ise bu tür degisikliklerin gerçeklesmesi kaçinilmazdir. Ayrica çogu durumda, gelistirilen bir EJB için daha fazla kütügün olacagi düsünüldügünde, EJB gelistiricilerin bu konuda fazla emek ve zaman harcamamak amaciyla birseyler yapmasinin gerekliligi açikça görülmektedir.

XDoclet, bir kod üretme aracidir. Java kaynak kütüklerine eklenecek üstveriyi (metadata) ayristirarak, yeni Java kaynak kütükleri ya da XML descriptor kütüklerini olusturabilmektedir. Bu üstveri ise, JavaDoc imleri arasina yerlestirilmektedir. Dolayisiyla EJB gelistiriciler, basit bir fikirden yola çikarak kodlarinin %85 gibi önemli bir kisminin yazilmasini otomatiklestirmektedirler: kod içi belgeleme. Kisaca, EJB bileseni gelistiren bir programci, JavaDoc imlerini kullanarak kod içi belgelemesini yaparken, özel XDoclet imlerini de kullanarak, EJB bileseninin baska kütüklerinin olusturulmasini saglayabilmektedir.

3

Bu yaklasimin bazi yararlari bulunmaktadir: EJB gelistirici, gelistirmekte oldugu bileseni olusturan en az 5 ya da daha fazla

m

1.

kütükle ilgilenmek yerine, is mantigini içeren Enterprise Bean sinifi üzerine yogunlasabilir ve tek bir kütügü yönetmek durumundadir.

Kod gelistirme zamani önemli miktarda azalmaktadir. XDoclet kodun %85’ini

i.c o

2.

üretmektedir. Arayüzler (interface), veri tasima nesneleri (data transfer objects – value objects), Struts formlari ya da birçok örüntü (pattern) için gerekli olan kütükler, XDoclet tarafindan üretilmektedir. 3.

XDoclet, birçok lider uygulama sunucusu ve araci desteklemektedir. JBoss,

BEA Web Logic, IBM Websphere, Oracle IAS, Orion, Borland, MacroMedia JRun,

dil

Jonas, Pramati, Sybase EAServer ve birçok baska uygulama sunucusu ile; Castor, Hibernate, birkaç JDO saglayici, Struts, WebWork, MobObjects ve baska birçok araç, XDoclet tarafindan desteklenmektedir. 4.

XDoclet

açik

kaynak

kod

ilkesi

ile

gelistirilmis

oldugundan

yazilim

va

saglayicilarin özel çözümlerine bagimli kalinmayacagi gibi, genisletilebilir yapisi sayesinde, uygulama gelistiricilerin kendi XDoclet modüllerini yazmalarina da olanak

ww w. ja

saglamaktadir.

4

3. Apache Ant (Another Neat Tool) – http://ant.apache.org/

m

Büyük bir J2EE projesinde çalisan bir uygulama gelistiricinin ilgilenmesi gereken birçok .java kaynak kütügü bulunmaktadir. Bu kütüklerin çogu baska kilavuzlar altinda bulunan baska kaynak kütüklere dayanmakta (dependency) ve projenin

i.c o

olusturulmasi için bütün bu bagimliliklarin ele alinmasi, kaynak kütüklerin derlenmesi, kilavuzlarin yönetilmesi.. gerekmektedir. Bir araç kullanilmamasi durumunda bu isler gerçekten zaman alici ve sinir bozucu olabilmektedir.

Apache Ant, teorik olarak Make aracina benzeyen ancak Java tabanli bir olusturma aracidir (Java-based build tool). Make, gnumake, nmake, jam gibi birçok benzer araci varken Ant’in gelistirilmesinin nedeni olarak, ilk gelistiricisinin farkli düzlemler için

dil

yazilim gelistirirken, var olan araçlarin kisitlamalari ile basa çikamamis olmasi gösterilmektedir. Make benzeri araçlar kabuk tabanlidir (shell-based). Dolayisiyla, üzerinde çalistiliklari isletim sistemine de bagimlidirlar. Ayrica kullanimlari da genellikle oldukça zordur.

va

Ant ise, kabuk tabanli komutlar ile genisletilmis bir model yerine, Java siniflari ile genisletilmis bir model sunar. Kabuk komutlari yerine XML tabanli biçimlendirme kütükleri kullanmaktadir. Dolayisiyla platformdan bagimsiz ve kolay kullanimli bir yapisi vardir. tekrarli

karmasik

islemlerin

otomatiklestirilmesini

sagladigindan,

ww w. ja

Ant,

standartlastirilmis olusturma islemlerinde oldukça yararlidir. J2EE projelerinin farkli kilavuzlara dagilmis çok kütüklü yapisi göz önüne alindiginda, Ant gibi bir aracin saglayacagi yarar ortadadir.

Ant bugün birçok tümlesik program gelistirme ortaminda kullanilmakta, bu ortamlarla tümlesik çalisabilmektedir.

5

4. JUnit – http://www.junit.org

çalistirilmasi

ve

sonuçlarin

beklenildigi

gibi

olusup

m

“Birim sinamasi (unit test)”, üretilen kodun gelistirilen sistemden yalitilmis bir sekilde olusmadiginin

sinanmasi

anlamina gelmektedir. Amaç, gelistirilen kodun sistemle bütünlestirilmeden önce,

i.c o

kodda bulunmasi olasi hatalarin belirlenmesidir. Hatalarin önceden belirlenmeye çalisilmasinin nedeni ise, yalitim sayesinde hatalarin daha kolay (daha çabuk ve daha ucuz) bulunabilmesidir. Sinamalar sayesinde, kodlarda yapilan degisikliklerin, daha önceden yapilanlara zarar verip vermedigi de belirlenebilir.

JUnit, Java kodlari için Java dilinde birim sinamalarinin hazirlanabilecegi, açik kaynak kod felsefesine göre gelistirilmis bir çatidir (framework). Bir sinamayi üzere

gerekli

olan

çalisma

ortamini

saglar.

Sinama

islemlerinin

dil

çalistirmak

otomatiklestirilmesi ve sinama sonuçlarinin hatalari belirleyebilmek üzere uygun biçimde düzenlenmesi gibi islevsellikler sunar. Böylece, sinama isini yapan kisinin

ww w. ja

va

sinamalarla ilgili olarak yapmasi gereken is, sadece sinama kodlarini yazmaktir.

6

5. Apache Struts – http://jakarta.apache.org/struts/ uygulamalarinin, dogrudan J2EE düzlemi tarafindan belirtilmeyen,

m

Bütün Web

istemlerin yollanmasi, yöntemlerin çagrilmasi, sunulacak görüntülerin seçilmesi ve olusturulmasi gibi bir takim ortak gereksinimleri bulunmaktadir. Bir Web-katmani Çatisi

(Web-tier

Application

Framework),

J2EE

düzlemi

üzerine

i.c o

Uygulama

yerlestirilerek bu ortak gereksinimleri karsilayabilir. Bu yaklasim, Sekil 5.1’de görülmektedir. Uygulamaya özel kod

Uygulama Katmanlari

dil

Uygulama çatisi (Application Framework) J2EE (Web Container)

Düzlem Katmanlari

J2SE

va

Isletim Sistemi

Sekil 5.1 J2EE Uygulamalarinin Katmanli Yapisi

ww w. ja

Bir Web-katmani Uygulama Çatisinin yarari, Web-katmani teknolojilerinin kullanimini kolaylastirarak, uygulama gelistiricilerinin is mantigina yogunlasmasini saglamasidir. J2EE BluePrints (http://java.sun.com/blueprints/enterprise/) tarafindan önerilen en iyi deneyimlerden (best practice) birisi, J2EE uygulamalari için yeni bir çati katmani gelistirmek

yerine,

var

olan

ve

kalitesini

ispatlamis

bir

uygulama

çatisinin

kullanilmasidir.

Apache Struts bu uygulama çatilarindan birisidir. Ücretsiz ve açik kaynak kodlu olan çati, oldukça biçimlendirilebilir olmasinin yanisira, genis (ve genislemekte olan) özellikler

geçerlilik

listesi

sunmaktadir.

kontrolü

yapan

Bunlar

HTML

arasinda

sunucu

formlarinin

ve

tarafi JavaBeanlerinin, bazi

uluslararasilastirma

(internationalization) desteginin otomatik üretilmesi; HTML olusturulmasi, sunum mantiginin isletilmesi ve sablonlar (template) için özel imler (tag) içerilmesi sayilabilir. Ancak Apache Struts henüz bir standart haline gelmemistir. Diger Web-katmani

7

uygulama çatilari olarak, J2EE BluePrints WAF, JavaServer Faces ve Sun ONE

ww w. ja

va

dil

i.c o

m

Application Framework sayilabilir.

8

6. JBoss – http://www.jboss.org uygulamalari,

bir

(ya

da

daha

fazla)

uygulama

sunucusu

üzerinde

m

J2EE

çalismaktadirlar. Uygulama sunuculari, farkli kuruluslar tarafindan Sun firmasinin hazirladigi belirtimlere (specification) uygun olarak gelistirilmis, dolayisiyla J2EE

islevler

alt

kümesini

gerçeklestirilecegi

i.c o

uygulamalarinin düzlemden bagimsiz olmalarini saglamak üzere belirli bir ortak saglamaktadirlar.

özellestirilmeyen

Bununla

konularda,

her

birlikte,

uygulama

belirtimlerde

nasil

sunucusu

kendi

çözümlerini üretmekte, böylece farkli basarimlarda uygulama sunuculari ortaya çikmaktadir. JBoss, BEA Web Logic, IBM Websphere, Oracle IAS, Orion, Borland, MacroMedia JRun, Jonas, Pramati, Sybase EAServer bu uygulama sunucularindan

Bir

J2EE

uygulamasinin

dil

bazilaridir.

yayginlastirilmasi

(deployment)

asamasinda

hangi

uygulama sunucusunun seçilecegi, uygulamayi kullanacak olan kurumun var olan yatirimlarina ve alacagi kararlara baglidir. Kendi kullanimi için uygulama gelistiren bir kurum ise ayni noktalari dikkate almakla birlikte, en iyi basarimi saglamak üzere

kurumlara

va

belirli uygulama sunucusuna bagli kalmak gibi bir karara da varabilir. Ancak farkli pazarlanmasi

düsünülen

bir

uygulamanin,

kesinlikle

uygulama

sunucusundan bagimsiz olmasi gerekmektedir. Dolayisiyla gelistirme asamasinda, uygulamanin birden fazla uygulama sunucusu üzerinde çalistirilarak denenmesi bir

ww w. ja

seçenek olarak degerlendirilebilir.

JBoss, tamami Java dili ile gelistirilmis, açik kaynak kodlu ve ücretsiz, 2002 yilinda “JavaWorld’s Editor’s Choice – best java app-server” ödülünü kazanmis, Motorola, Dow Jones Indexes, Nortel, Playboy Enterprises, U.S. Department of Defense, WorldCom gibi önemli isimlerin de içinde bulundugu bir müsteri yelpazesi olan popüler bir Java uygulama sunucusudur.

Uygulamanin hayata geçirilmesinde degerlendirilebilecek bir seçenek olmanin yanisira, gelistirme sirasinda gelistiricilerin kisisel bilgisayarlarina bile kurulup kullanilabilecek oldukça kolay bir uygulama sunucusu olan JBoss, seçilecek baska bir

uygulama

sunucusu

ile

birlikte

uygulamanin

düzlemden

bagimsizliginin

dogrulanmasi için de tercih edilebilir.

9

7. Eclipse – http://www.eclipse.org

m

Eclipse, Web siteleri, gömülü (embedded) Java programlari, C++ programlari ve EJB bilesenleri gibi uygulamalar gelistirmek üzere tümlesik program gelistirme ortami (Integrated Development Environment - IDE) olusturmak için tasarlanmis bir

i.c o

düzlemdir. Daha genel bir ifade ile Eclipse Platform’u, hersey için kullanilabilen ama hiçbirseye özel olmayan bir IDE olarak görülebilir.

Eclipse, varolan islevlerinin yanisira, plug-inler ile bütünlestirilerek yeni islevler de saglayabilmekte, gereksinimlere göre özellestirilebilmektedir. Windows ve Linux da dahil olmak üzere farkli isletim sistemlerinde çalisabilmektedir. HTML, Java, C, JSP, EJB, XML gibi içerik türlerini desteklemektedir.

dil

Bir IDE seçilirken dikkat edilmesi gereken önemli özelliklerden birisi, seçilen gelistirme ortaminin kullanilacak uygulama sunucusu ile bütünlestirilebilir olmasidir. Böylece

uygulamanin

kodlama

(coding),

böcek

ayiklama

(debugging)

ve

konuslandirma (deploying) asamalarinda, IDE önemli yararlar saglayabilir. Eclipse noktada

tümlestirilebilir

yapisiyla

önem

kazanmaktadir.

Örnegin,

yukarida

va

bu

anlatilan Ant, XDoclet, JUnit, Struts gibi araçlar ile JBoss uygulama sunucusu

ww w. ja

Eclipse ile bütünlestirilerek çalistirilabilmektedir.

10

8. Kilavuz Yapisi ve Araçlarin Kurulmasi

m

Bu bölümde, yukarida bahsedilen araçlardan Ant, XDoclet, JBoss ile j2sdk’nin J2EE uygulamalari gelistirmek üzere nasil bir arada kullanilacagi örneklenecektir. Bu amaç için belirlenen bir kilavuz yapisinda araçlarin kurulumlari anlatilacak, daha sonra da

i.c o

örnek uygulamalar ile konu pekistirilecektir.

Araçlarin kurulumlari ile ilgili ayrintili bilgi, her araç için ilgili Web sitesinde ya da aracin kurulum kütükleri arasinda bulunabilir.

Bütün kurulumlar ve örnekler, üzerinde Win2000 Professional Edition isletim sistemi bulunan bir bilgisayarda yapilmis ve denenmistir.

dil

Kilavuz Yapisi

Bu belgede anlatilan araçlar, J2EE uygulamalari gelistirmek üzere kullanilabilecek birçok

araç

arasindan

çesitli

sebeplerle

seçilmis

bir

araçlar

alt

kümesini

olusturmaktadir. Burada belirlenen kilavuz yapisi da bu alt kümeyi bir araya toplamak amaciyla olusturulmus bir yapi olup tamamen programcinin tercihine baglidir. Ancak

va

bütün örnekler, buradaki yapi esas alinarak alinarak anlatilacagindan, yapinin iyi anlasilmasi ve gerekli oldugu durumlarda, degisikliklerin programci tarafindan yapilabilmesi gerekmektedir.

ww w. ja

Sekil 8.1’de, kurulumlarin yapildigi kilavuz yapisi görülmektedir.

Sekil 8.1 Kilavuz Yapisi

Sekil 8.1’deki yapi, programcinin istedigi bir yerde olusturulabilir. Ancak bazi çevre degiskenleri bu bilgiye göre kurulacaktir. Örnegin J2EEApps adli kilavuzun C: kök

11

kilavuzunda olusturuldugunu varsayarsak, çevre degiskenlerimizi Çizelge 8.1’deki

m

gibi kurabiliriz. Degeri

J2EEAPPS

C:\J2EEApps

ANT_HOME

%J2EEApps%\ant

JAVA_HOME

%J2EEApps%\j2sdk

JBOSS_HOME

%J2EEApps%\jboss

XDOCLET_HOME

%J2EEApps%\xdoclet

i.c o

Çevre Degiskeni

%PATH%;%JAVA_HOME%\bin;

PATH

dil

%ANT_HOME%\bin %CLASSPATH%;.

CLASSPATH

Çizelge 8.1. Çevre degiskenleri ve degerleri

va

Dikkat edilirse, araçlarla ilgili çevre degiskenleri J2EEApps degiskenine bagli olarak kurulmustur. Böylece bu kilavuz oldugu gibi tasinabilir hale gelmektedir. Sadece kilavuzu

gösteren

J2EEApps

degiskeninin

güncellenmesi,

araçlarin

ve

uygulamalarin çalismasi için yeterli olacaktir.

ww w. ja

Araçlarin Kurulmasi

Ilgili kilavuz yapisi olusturulduktan ve çevre degiskenleri kurulduktan sonra, herbir araç ilgili alt kilavuza kurulur. Bütün araçlar .zip

kütügü halinde ilgili web

sitelerinden indirilebilmektedir. Kurulum için yapilmasi gereken, .zip kütüklerinin kilavuzlar altina açilmasindan ibarettir. Ancak suna dikkat edilmelidir: Araçlar genellikle sürüm numaralariyla adlandirilmis kilavuzlar altinda, kilavuz bilgisi ile birlikte sikistirilmistir. Dolayisiyla, örnegin ant araci, apache-ant-1.5.4bin.zip gibi bir kütük halinde indirilebilmekte ve bu kütük açildiginda apache-ant-1.5.4 adinda bir kilavuz olusmaktadir. Oysa bizim kilavuz yapimizda sadece ant

adinda bir alt kilavuz bulunmaktadir. Yapilmasi

gereken, açilan kilavuzun adinin degistirilmesi ya da içeriginin ant alt kilavuzu altina kopyalanmasidir.

12

Burada akla söyle bir soru gelebilir: Kilavuz yapisini, ant yerine apache-ant-

m

1.5.4 adli bir alt kilavuz olusturacak sekilde de olusturamaz miyiz? Bu sorunun yaniti, ant kurulum belgelerinde verilmektedir: “Windows

95,

Windows 98 & Windows ME Note: On these systems, the script used to launch Ant will have problems if ANT_HOME is a long

i.c o

filename (i.e. a filename which is not of the format known as "8.3"). This is due to limitations in the OS's handling of the "for"

batch-file statement. It is recommended, therefore, that

Ant be installed in a short, 8.3 path, such as C:\Ant.” Ayrica, kullanilan araçlar sürekli yenilenmekte, yeni sürümleri çikmaktadir. Buna bagli olarak, kilavuz adlarinin sürüm numarasi içerecek sekilde seçilmesi, her sürüm

dil

için degisiklik yapilmasini gerektirecektir.

Kurulumlar tamamlandiktan sonra, araçlarin çalisip çalismadigini denemek üzere bir

ww w. ja

va

sonraki bölümde verilen örnek uygulamalar kullanilabilir.

13

9. Applications Alt Kilavuzunun Yapisi alt

kilavuzu,

gelistirilen

uygulamalari

bir

arada

tutmak

üzere

m

Applications

olusturulmustur. Sekil 9.1’de iki örnek uygulama içermekte olan Applications kilavuzu

dil

i.c o

görülmektedir.

Sekil 9.1 Applications kilavuzunun görünümü

Sekil 9.1’de görülen Count, ExampleForAll ve HW, örnek uygulamalar için olusturulmus olan alt kilavuzlardir. Diger iki kütük ise bütün uygulamalarda ortak

va

olarak kullanilan bir takim bilgileri içermektedir.

Uygulamalar için olusturulan alt kilavuzlar ise kendi içlerinde belirli bir yapida tutulmaktadir.

9.2’de

ExampleForAll

uygulamasinin

kilavuz

yapisi

ww w. ja

görülmektedir.

Sekil

Sekil 9.2. ExampleForAll uygulamasi için kilavuz yapisi

14

Görüldügü gibi, her uygulama için bir alt kilavuz olusturulmakta, o uygulama ile ilgili

src altinda, uygulamanin kaynak kodu bulunmaktadir.

m

bütün kütükler de bu alt kilavuz altinda tutulmaktadir.

src\java kilavuzu, kaynak java kütüklerini içermektedir. Bu kilavuz altinda,

i.c o

olusturulan herbir package için ayri bir alt kilavuz bulunabilir. Her package içerisinde ise, uygulamayi olusturan farkli bilesenler görülmektedir.

?? client: istemci uygulama kaynak kod kütüklerini

?? ejb: Enterprise JavaBean kaynak kod kütüklerini

?? web: Java ile kodlanmis ve derlenecek olan web bilesenlerini

dil

(Servlet gibi) içermektedir.

src\web altinda ise, derlenmesi gerekmeyen web bilesenlerine ait kaynak kodlar bulunmaktadir. Örnegin, .html, .jsp, .css, .js kütükleri bu kilavuz altinda

va

yer almaktadir. Bu kilavuz altinda, gerekliyse alt kilavuzlar olusturulabilir. Örnegin Styles adinda bir alt kilavuz olusturularak, uygulamada kullanilacak farkli .css kütükleri bu kilavuz altinda toplanabilir ya da bütün JavaScript

kodlari

JavaScripts adinda bir alt kilavuza yerlestirilebilir. kodu

yazildiktan

sonra,

kodlarin

ww w. ja

Uygulama

derlenmesi,

yardimci

kütüklerin

olusturulmasi gibi islemler gerçeklestirilecektir. Bu amaç için ise daha önce bahsedilmis olan Ant, XDoclet gibi araçlar kullanilacaktir. Sekil 9.3’te, biçimlendirme kütüklerinde

belirtilen

bilgilere

göre

olusturulan

yeni

kilavuzlarla

birlikte

ExampleForAll kilavuzunun yapisi görülmektedir. build altinda: olusturulan yeni kütüklerle birlikte, uygulamanin derlenmis hali (compile/build),

deploy altinda: uygulama sunucusuna kopyalanacak kütükler (deployment) gen-src altinda ise: üretilen kaynak kod kütükleri bulunmaktadir. Uygulama gelistirilirken böyle farkli alt kilavuzlara dagitilmis kütükler üzerinde çalismak,

tekrarlanan

derleme/olusturma/yayginlastirma

(compile/build/deploy)

islemlerinin daha kolay otomatiklestirilebilen ve kendini anlatan, kolay anlasilir bir

15

yapi olusturulmasini saglamaktadir. Programci, kendi tercihine göre farkli yapilar

m

olusturmakta ve kullanmakta özgürdür. Ancak bu belgede anlatilan örnekler, sözü geçen yapiya sadik kalinarak hazirlanmistir. Programcinin, olusturacagi yapiya

ww w. ja

va

dil

i.c o

uygun degisiklikleri yapmasi gerekmektedir.

Sekil 9.3. ExampleForAll kilavuzunun, olusturma asamasindan sonraki görünümü

16

10. build.properties kütügü

src.java.dir = ${src.dir}/java src.web.dir = ${src.dir}/web src.lib.dir = ${src.dir}/lib

i.c o

build.dir = ${app.dir}/build deploy.dir = ${app.dir}/deploy gen-src.dir = ${app.dir}/gen-src src.dir = ${app.dir}/src

m

xdoclet.lib.dir = ${env.XDOCLET_HOME}/lib jboss.client.dir = ${env.JBOSS_HOME}/client jboss.deploy.path = ${env.JBOSS_HOME}/server/default/deploy

xdoclet.force = false

dil

build.ejb.dir = ${build.dir}/ejb build.ejb.meta-inf.dir = ${build.ejb.dir}/META-INF build.web.dir = ${build.dir}/web build.web.web-inf.dir = ${build.web.dir}/WEB-INF build.web.web-inf.classes.dir = ${build.web.web-inf.dir}/classes build.web.web-inf.lib.dir = ${build.web.web-inf.dir}/lib

va

Kaynak Kod 10.1. build.properties kütügü

build.properties kütügü, bütün uygulamalarda kullanilan ortak ayarlari içeren bir kütüktür. Incelendiginde görülecektir ki; özellikle, bahsedilen kilavuz yapilarini olusturmak üzere tanimlanmis degiskenleri içermektedir. Programci, istegine uygun

ww w. ja

sekilde bu kütükte degisiklikler yapabilir. Kütügün yapisinin daha iyi anlasilabilmesi için Ant belgelerine basvurulabilir.

17

11. HelloWorld Uygulamasi

m

Bu uygulama, bir Stateless Session Bean (SSB) ile bir istemci uygulamadan olusan basit bir uygulamadir. Istemci uygulama, SSB üzerindeki bir yöntemi çagirarak dönen degeri ekrana yazdirmakta, SSB ise çalisan her yöntemi için sunucu tarafindaki çikti

üretmektedir.

Uygulamanin

kaynak

kütükleri,

i.c o

konsola

http://ata.cs.hun.edu.tr/~aslantur/Courses/Bil447/index.htm adresinden indirilebilir. Örnek oldukça basit oldugundan, bu kesimde SSB bileseni açiklanmayacaktir. Ancak vurgulanmasi gereken nokta, istemci uygulamanin sunucu üzerindeki SSB’ye nasil ulastigidir.

Bu

noktayi

örnekleyen

iki

farkli

istemci

uygulama

yazilmistir.

HelloClient istemci uygulamasi, kod içerisine yazilan sunucuya ait bir takim

çevre

degiskeninde

bulunan

dil

parametrelerle çalisirken, HelloClient2 uygulamasi bu parametreleri classpath jndi.properties

adli

kütükten

almaktadir.

Dolayisiyla HelloClient2

istemci uygulamasi, farkli jndi.properties

kütükleri

uygulama

kullanarak

sunuculari

üzerine

yerlestirilmis

va

bilesenlere ulasabilir.

farkli

Kaynak Kod 11.1’de jndi.properties kütügü görülmektedir.

ww w. ja

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces java.naming.provider.url=localhost:1099

Kaynak Kod 11.1. jndi.properties kütügü

Kaynak Kod 11.2 ve 11.3’de ise HelloClient ve HelloClient2 istemcilerini çalistiran .bat kütükleri görülmektedir. @echo off

cd build\ejb

java -classpath %CLASSPATH%;%JBOSS_HOME%\client\jbossall-client.jar HelloWorldExample.client.HelloClient2 cd ..\.. @echo on

Kaynak Kod 11.2. runClient.bat kütügü

18

@echo off

m

cd build\ejb java -classpath %CLASSPATH%;%JBOSS_HOME%\client\jbossallclient.jar;%J2EEApps\Applications HelloWorldExample.client.HelloClient2 cd ..\..

i.c o

@echo on

Kaynak Kod 11.3. runClient2.bat kütügü

Kodlar incelendigi zaman, uygulama çalistirilirken -classpath

parametresinin

jndi.properties kütügünü içerecek sekilde nasil kuruldugu görülecektir. Uygulamanin çalistirilmasi için asagidaki adimlar izlenebilir: uygulama

sunucusu

seçmistik; çalistirmak için; ?? Bir konsol açiniz

çalistirilir.

Uygulama

sunucusu

dil

1. Önce

olarak jboss

?? run

va

?? cd J2EEApps\jboss\bin

Uygulama sunucusunun çalisip çalismadigini görmek için, bir tarayici ile http://localhost:8080/jmx-console adresine bakabilirsiniz.

ww w. ja

2. Uygulamanin derle/olustur/yayginlastir (compile/build/deploy) asamalari ayri ayri gerçeklestirilebilecegi gibi, Ant aracina girdi olan build.xml kütügünde örneklendigi üzere, tanimlanacak görevlerle hep beraber de gerçeklestirilebilir. ?? Bir konsol açiniz

?? cd J2EEApps\Applications\HW ?? ant deploy-ejb

3. Bir önceki adimda herhangi bir hata olusmadiysa, bilesen(ler)inizin uygulama sunucusunun ilgili bir kilavuzuna kopyalanarak kullanima hazir hale geldigini görebilirsiniz. Bu durumda yapmaniz gereken istemci uygulamalari çalistirarak sonucu görmektir. Bu amaç için olusturulmus olan runClient.bat ve runClient2.bat kütüklerini kullanabilirsiniz. ?? runClient.bat

19

ww w. ja

va

dil

i.c o

m

?? runClient2.bat

20

12. KAYNAKLAR Designing Enterprise Applications with the J2EE Platform, Second Edition,

m

1.

http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/

XDoclet web sitesi, http://xdoclet.sourceforge.net/

3.

Apache Ant web sitesi, http://ant.apache.org

4.

JUnit web sitesi, http://www.junit.org

5.

Apache Struts web sitesi, http://jakarta.apache.org/struts/

6.

JBoss web sitesi, http://www.jboss.org

7.

Eclipse web sitesi, http://www.eclipse.org

8.

Introducing JUnit by Alan Griffiths

dil

i.c o

2.

http://www.octopull.demon.co.uk/java/Introducing_JUnit.html

9.

Ant Tutorial, Ashley J.S Mills,

/ant.html

10.

va

http://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/ant

Eclipse Platform Technical Overview, Object Technology International, Inc., February 2003, http://www.eclipse.org/whitepapers/eclipse-overview.pdf Mastering Enterprise JavaBeans, Second Edition, Ed Roman, ISBN: 0-471-

ww w. ja

11.

41711-4

12.

EJB Design Patterns, Advanced Patterns, Processes, and Idioms, Floyd Marinescu, ISBN: 0-471-20831-0

21

Related Documents

Kurulum
December 2019 1
J2ee
November 2019 24
J2ee
December 2019 25
J2ee
November 2019 24