Kayıtlar

Generics && wildcards

Genericsler java 5 ile gelen özellikler. Basit şeklini hemen hemen her yerde kullanıyoruz. ancak collection arayüzü ile beraber kullanımında bazen sıkıntı yaşandıgını görüyorum. şöyle bir incelemek gerekirse; class{ Collection myNUmbers = new ArrayList (); public void main() { printCollection(myNUmbers); } void printCollection(Collection c) { for (Serializable e : c) { System.out.println(e); } } } printCollection(Collection c) methodunda parametre olarak "Collection c" almış olsaydı yukarıda ki kod parçası hata alacaktı. çünkü eger extend kullanmazsak, collection ile beraberinde kullanılan generics betimi beraber bir class oluştruyorlar ancak bu inheritance özelliklerini desteklemiyor diye dusunebiliriz yukarıda extend olmazsa ve biz printCollection(myNUmbers); methodunu aynen çagırırsak hata alırız. hatta ve hatta; Collection myNUmbers = new ArrayList (); şekilde tanım yapıp void printCollection(Collectio...

reverse-ajax

Reverse-Ajax bana garip ve cazibeli gelen bir olay ama bunun zor olduguda bir gerçek http://directwebremoting.org/dwr/index.html linkinde framework ve güzel anlatımlar var. incelenmeli

maven2 de filter özelliği ve process-resources fazı

maven tagları arasında bulunan filter tagı bende ilk başkta dosyaları bir yere taşırken bazılarını almamak gibi bir çağrışım yapmıştı ama asıl yaptıgı iş ondan daha başarıymış. şöyleki diyelim bir proje yaptık ve versiyon numarasını aynı jar içindeki bir *.properties dosyasına koymak istiyoruz. tabi burada önemli olan her versiyonda oluşan generic versiyon numarası. bunun için diyelim ki src/main/resources/META-INF/application.properties dosyası içerisinde project.name=${project.name} project.version=${project.version} message=${my.value} satırlarını kullanmak istiyoruz. hemen efendim src/main/resources true tanımını giriyoruz ve process-resources fazını çalıştıryoruz. bir bakıyoruz ki gerekli alanlar dolmuş. birde sistemde kullandıgımız değişkenleri kullanmak da isteyebiliriz o zaman dataları almak istedigimiz properties dosyasını filter tagları ile mavena tanıtırız . tamamdır src/main/filters/filter.properties he yok efendim öyle ayrı dosyalar falan derseniz ...

Var olan bir web Service stub yazmak

bunun için bir ant script işimizi kolaylaştıracaktır. bu bize gerekli class ları generate edecektir. package com.yemek.run; import javax.xml.ws.BindingProvider; import com.yemek.siparis.Adres; import com.yemek.siparis.Yemek; import com.yemek.siparis.YemekSiparis; import com.yemek.siparis.YemekSiparisService; public class Runtime { public static void main(String[] args) { final String URL = ""; YemekSiparisService service = new YemekSiparisService(); YemekSiparis yemekSiparis = service.getYemekSiparisPort(); Yemek yemek = new Yemek(); yemek.setYemekIsmi("az kuru çok pilav "); Adres adres = yemekSiparis.siparisAl(yemek); System.out.println(adres.getYemek()); } }

SOA - Temel Taşlar 2 - jaxb

JAXB Java-Xml Binding işini , java 6 ile beraber standart olarak yapan tool diyebiliriz. bir xsd dosyamız olsun xmlns:tns="http://www.example.org/objectshop" elementFormDefault="qualified"> bu xsd bir ant scriti çalıştırarak gerekli sınıflarınımı oluştrabiliriz. eger runtime ayarlarınız java 6 ile classpath de eklemeniz gereken library bulunmamaktadır. Standart oldugu için. ancak java 5 kullanıyorsak ayrıca jaxb yi indirmemiz gerekmektedir. yukarıda ki script java 6 içindir. java 1.5 ten onceki versiyonlarda annotation olmadıgı için jaxb kullanmak mumkun degildir. yukarıda ki script bize aşagıdaki gibi classlar generate edecektir @XmlRegistry public class ObjectFactory { private final static QName _ObjectShop_QNAME = new QName("http://www.example.org/objectshop", "ObjectShop"); public ObjectFactory() { } public ObjectShopType createObjectShopTyp...

SOA - Temel Taşlar 1

Soa nın temelinde servisler vardır. Aslında Soa, servislerin butunune denir. Ve genelde servisler xml based sistemler olarak yazılırlar. çogunlukla da servis deyince aklımıza web servisleri gelmektedir. web servisleri yogun bir şekilde xml teknolojilerini kullanmayı gerektirir. xml, xsd, xslt gibi kavramları bilmek gerekmekte

browserdan response ile resim basmak

resim dosyalarını eger başka bir http serverdan alıyorsanız default olarak url = new URL(cmFullPath); conn = url.openConnection(); in = (InputStream) conn.getInputStream(); BufferedImage image =ImageIO.read(in); ImageIO.write(image,"jpg",response.getOutputStream()); response.getOutputStream().flush(); dersiniz yazar. ancak eger http server size gif veya jpeg veya tiff gonderiyorsa o zaman tiffleri ayırmanız gerekir response.setContentType("image/jpeg"); response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 response.setHeader("Pragma","no-cache"); //HTTP 1.0 response.setDateHeader ("Expires", 0); //prevents caching at the proxy server url = new URL(cmFullPath); conn = url.openConnection(); String fileType = conn.getContentType().toLowerCase(); in = (InputStream) conn.getInputStream(); if (fileType.indexOf("ti...