Tomcat Sunucuda JNDI ile Hibernate konfigürasyonu

Tomcat uygulama sunucusunda context.xml conf. dosyasından DataSource bilgilerini JNDI pattern bilgisi ile alıp EntityManager nasıl oluştururuz?

Şöyle ki;

Tomcat altındaki context.xml içerisine resource tanımlamamız gerekiyor.

<Context>
   <Resource auth="Container"      driverClassName="oracle.jdbc.driver.OracleDriver"
      initialSize="20" maxActive="100" maxIdle="30" maxWait="10000"
      name="jdbc/jndiName" validationQuery="select 1 from dual"
      password="password" type="javax.sql.DataSource"
      factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
      url="your DB connection url" username="username"/>
</Context>

Bu resource bilgileri içerisinde bağlantı bilgilerinin (url, kul. adı, şifre vs.) haricinde hangi kütüphanenin DataSource sınıfından yararlanacağımızıda belirtmemiz gerekiyor. “name” özelliği ise bizim JNDI patern bilgisini yazdığımız kısım.

Projemizin web.xml dosyası içerisine;

<resource-ref>
   <description>Oracle DB Connection</description>
   <res-ref-name>jdbc/jndiName</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>
</resource-ref>

eklememiz gerekiyor. Bu ayarları yaptıktan sonra javax.naming kütüphanesini kullanarak bilgileri çekeceğiz:

InitialContext initialContext = new InitialContext();
BasicDataSource  envCtx = (BasicDataSource) initialContext.lookup("java:comp/env/jdbc/jndiName");

envCtx.getDriverClassName();
envCtx.getUrl();
envCtx.getUsername();

..

şeklinde gereken bilgileri aldıktan sonra bir map yardımıyla EntityManagerFactory oluşturuyoruz. Buradaki BasicDataSource sınıfı org.apache.tomcat.dbcp.dbcp kütüphanesini ait.

HashMap<String, String> map = new HashMap<String, String>();
map.put(Environment.DRIVER, driver);
map.put(Environment.URL, url);
map.put(Environment.USER, user);
EntitiyManagerFactory factory = Persistence.createEntityManagerFactory(yourPersistanceUnitName, map);

EntityManager em = factory.createEntityManager();

Environment sınıfı  org.hibernate.cfg kütüphanesine ait.


21 Kasım 2012

Posted In: apache tomcat, db connection, Gezegen, java, oracle db, oracle jdbc driver

Hudson/Jenkins sistem tarihi problemi

Hudson veya Jenkins gibi düzenli derleme (sürekli entegrasyon) aracı kullanıyorsanız ve bu araçların kurulu olduğu sunucunuzun sistem tarihi svn veya git sunucularınızın tarihi ile uyuşmuyorsa, hudson kendi sistem tarihine kadar olan değişiklikleri alır ve uygulamanızı deploy eder. Saat farkının farkında değilseniz svndeki değişikliklerinizin neden uygulamaya deploy edilmediğine anlam veremeyebilirsiniz. Benim başıma geldi. O yüzden Sunucularınızın tarihlerinin bulunduğunuz ülkenin tarihiyle ve svn/git sunucularınızın tarihiyle aynı olmasına özen gösterin.


20 Kasım 2012

Posted In: Gezegen, java, linux

Rich:dataTable’da satırları sıralama

RichFaces kullanıyorsunuz. rich:dataTable’ınız var ve tabloya basılacak verileri bir kurala göre sılamak istiyorsunuz.

Bunun için dataTable altına eklediğimiz kolona:

<r:column sortBy=”#{trxList.txnDateTime}” sortOrder=”DESCENDING”>

….

</r:column>

 

sortBy : sıralamayı neye göre yapacaksınız.

sortOrder : azalan artan sıralama.


30 Temmuz 2012

Posted In: Gezegen, java, linux

Linux Yaz Kampı ’12

LKD ve INETD’nin ortaklaşa düzenlediği Abant İzzet Baysal Üniversitesi’nin ev sahipliğini yaptığı 3. Linux Yaz Kampı 22 Haziran – 7 Temmuz tarihleri arasında gerçekleşti. Yaklaşık 180 öğrenci ve 30 eğitmenin katıldığı etkinlikte Linux Sistem Yönetimi, Linux Masaüstü, Java EE5 ve PHP kursları verildi. Biz, üstad Hakan Uygun ve Umuthan Uyan ile birlikte Java eğitimi verdik.

Böyle resmi bir girişten biraz Java eğitiminden bahsedeceğim. Java eğitimine yaklaşık 55 kişi katıldı. İlk 4 gün temel Java ve Web teknolojileri ile ilgili teorik eğitim verdik. Kurumsal bir projeyi gerçekleştirmek için gereken diğer proje araçlarından da bahsettikten sonra bismillah diyerek Tekir Genel Muhasebe programının yazılmasına giriştik. Sınıfı 5 gruba ayırdıktan sonra işleri homojen bir şekilde dağıttık. Kampın kalan günlerinde gruplar verilen işleri bitirmeye çalıştılar. Ellerinden gelenin en iyisini verdiklerini düşünüyorum. Beklentilerimizin de üstünde bir iş çıktı. Buradan herkese teşekkür etmek istiyorum.

Linux Sistem Yönetimi eğitimi için ilk gün, sınıfların homojen olarak dağılması için, bir seviye belirleme sınavı yapıldı. “Sınıflar” diyorum çünkü LSY kursuna katılım oldukça fazlaydı ve 1. düzey 3 farklı sınıfta gerçekleştirildi. LSY 2. düzey sınıfı bir taneydi. Keza PHP ve Masaüstü eğitimlerimiz için de birer sınıf oluşturuldu. Türkiye’nin farklı yerlerinden gelen eğitmenlerimizin desteği ile 2 hafta boyunca Özgür Yazılım adına çok güzel işler başardığımızı düşünüyorum. Bu paragrafın sonunda da eğitmen arkadaşlarıma teşekkür etmek istiyorum. Sağ olun var olun:)

Eğitimlerimiz böyleydi. Peki ya Bolu güzel miydi? Üniversite sizi iyi ağırladı mı? Yemekler, kalacak yerler iyi miydi?

Tüm bu soruların cevabı bence EVET ‘ti. Bir kaç aksilik ve ufak tefek sorun dışında harika 2 hafta geçirdim Bolu’da. AİBU’nun sosyal tesislerinde kaldık. Herhangi bir 3+ yıldızlı otelden farkı yoktu. Çok rahattı.

Yemekler için ayrı paragraf açmak istiyorum. Keza 2 haftada 2 aylık yemek yedik. Pişman mıyım? Asla. Şimdi bir daha olsa yine yaparım. Yapacağım da:) Yaşasın yemek yemek. Kampın ilk haftası sevgili Devrim Gündüz ve Erdem Bayer hocalarımızın arabaları vardı. 2 araba ve 11 kişi. Her gün öğle ve akşam yemeklerinde Bolu’nun çeşitli yerlerine yemeğe gittik. Özellikle Sanayi Sitesinde Alan Kardeşler Günaydın Restoran 10 numaraydı. Yemeklerin tadı hala damağımda. Bolu’ya yolunuz düşerse gidin. Hatta bilerek yolunuzu değiştirin ve gidin orada yemek yiyin:)) O derece. Erdem hoca az çilemizi çekmedi yemek yollarında.Buradan hem teşekkür ediyorum hemde özür diliyorum:))

Yazının sonuna bir kaç fotoğraf ekliyorum. Yazının dışında size birşeyler anlatması için. Haydi kalın sağlıcakla.

kamp1 kamp2 kamp5 kamp4

 

Kamp ile ilgili diğer bütün resimleri görmek için buraya gidebilirsiniz


9 Temmuz 2012

Posted In: Gezegen, java, linux

Jasper Raporlarını Ant ile Nasıl Derlerim?

Bir dizinde bulunan .jrxml uzantılı raporlarımızı ant ile derlemek için build.xml dosyasına aşşağıdaki betik yazılabilir.

<taskdef name=”jrc” classname=”net.sf.jasperreports.ant.JRAntCompileTask”>
<classpath refid=”build.classpath”/>
</taskdef>

<target name=”buildjasper”>
<mkdir dir=”./build/reports”/>
<jrc
srcdir=”${basedir}/jasper”
destdir=”${dist.dir}/reports”
tempdir=”${dist.dir}/temp”
keepjava=”true”
xmlvalidation=”true”>
<classpath refid=”build.classpath”/>
<include name=”**/*.jrxml”/>
</jrc>
</target>

Burada  taskdef  tag’i içine jasper raporlarının derlenmesi için gerekli olan java kütüphanesinin adı ve class path’i yazılır.

srcdir : Adından da anlaşılacağı gibi kaynak dizinimizdir. Yani .jrxml uzantılı raporlarımızın bulunduğu dizin.

destdir: Derlemeden sonra oluşacak .jasper uzantılı raporlarımızın gideceği dizin.

tempdir: Derlemeden sonra oluşacak diğer dosyaların kopyalanacağı dizin.

Daha sonradan build.xml ‘in olduğu dizinde bir konsol açıp “ant buildjasper” (*) komutunu yazarak raporlarınızı derleyebilirsiniz.

* buildjasper : ant betiğinde ki target name’i.


1 Şubat 2012

Posted In: Gezegen, java, linux

.svn Dosyalarını Silin Gitsin!

Svn de duran bir proje dizininden ve onun alt dizinlerinden .svn dizinlerini silmek isterseniz yada buna ihtiyaç duyarsanız bir kaç değişik komutla bunu halledebilirsiniz.

  1. $ rm -rf `find . -type d -name .svn`
  2. $ find . -name “.svn” -exec rm -rf {} \;
  3. $ find . -name .svn -print0 | xargs -0 rm -rf
  4. $ find . -type d -name ‘.svn’ -print0 | xargs -0 rm -rdf

Buyrunuz efendim.

Kaynak: http://anilozbek.blogspot.com/


31 Ocak 2012

Posted In: Gezegen, java, linux

Joiner sınıfı ile textleri birbirine bağlayın

Joiner sınfı, istediğiniz ayraçlar ile stringleri birbirine bağlamanızı sağlar.
Örneğin elinizde bir collection var ve bu collectionın elemanlarını aralara virgül koyarak bir text haline getirmek istiyorsunuz.

Joiner.on(“, “).appendTo(aStringBuilderObject, aCollection);

Burada StringBuilder objenize Collection elemanlarını araya virgül koyarak append ediyorsunuz.

Ben collection kullanmayacağım, bağlamak istediğim textleri kendim yazacağım derseniz de aşşağıdaki örneği uygulayabilirsiniz.

[1]
Joiner joiner = Joiner.on(“; “).skipNulls();
return joiner.join(“Harry”, null, “Ron”, “Hermione”);

Bu size “Harry; Ron; Hermione” stringini return eder. Input elemanları join olmadan önce String objesine convert edilirler.
skipNulls() methodu input elemanlarından herhangi biri null ise NPE yemenizi engeller.

Son olarak Joiner sınıfı nedir nerededir sorusuna yanıt vereyim.

Google Collections kütüphanesinde com.google.common.base.Joiner paketinde bulunur.

Haydi kolay gelsin.

refs
[1] http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/base/Joiner.html


3 Kasım 2011

Posted In: Gezegen, java

Eclipse’de @author adını değiştirmek

Eclipse’de yeni bir class oluştururken ‘generate comments’ seçeneğini işaretlerseniz yada alt+shift+j kısayolu ile javadoc üretirseniz sınıfın başında;

/**
*
*@author deniz
*/

şeklinde comment üretilir.

Eclipse default olarak @author ismi için bilgisayar kullanıcı adınızı kullanır. Bunu değiştirmek için Eclipse dizini içindeki ‘eclipse.ini’ dosyasını açın ve -vmargs satırından sonra,

-Duser.name=”A. Deniz Korkmaz”

yazın. Eclipse’i yeniden başlattığınızda @author adı değişecektir.


2 Kasım 2011

Posted In: Gezegen, java

Twitter Auto Publish Powered By : XYZScripts.com