top of page

Java Web Service ve Web Service Client Olusturma

  • Writer: Sevdanur GENC
    Sevdanur GENC
  • May 9, 2012
  • 4 min read

Java Web Service ve Java Web Service Client olusturmalari ile ilgili bu uygulamayi adim adim gerceklestiriyor olacagiz. Uygulamamizda cektigimiz veriye ait diger bilgileri listelettirme islemlerini gerceklestiricez. Bunun icin database'imizden verileri aktarabilmemiz ve yine bu verileri kullanicilara sunabilmemiz icin yine jsf yapisindan yararlaniyor olacagiz. Oncelikle Netbeans arayuzumuzde Web_Service_Uygulamalari isminde  yeni bir web application olusturalim.

Veri tabanimizdan verilerimizi cekebilmemiz icin SourcePackages icerisine normal bir java class olustuyor ve ismini VeritabaniBaglanti.Java veriyorum. Odev isminde bulunan veri tabanimin icerisinde ki kullanicilar tablosunu kullanabilmem icin bu java class'i icerisine gerekli olan database baglantilarini saglayan komutlari yaziyor olacagim. Hemen ardindan Kullanicilar tablosuyla birebir olacak sekilde bir adet Kullanicilar.Java isminde bir pojo sinifi hazirladiktan sonra gerekli Web service ayarlarini yapacagiz. Oncelikle bu iki class'in kaynak kodlarini paylasayim.    

VeritabaniBaglanti.Java Kaynak Kodlari ;

package kullanicilar; import java.sql.Connection; import java.sql.DriverManager; public class VeritabaniBaglanti { private Connection connection = null; String vtURL; String vtKullaniciadi; String vtSifre; public VeritabaniBaglanti() { this.vtURL = "jdbc:derby://localhost:1527/odev"; this.vtKullaniciadi = "odev"; this.vtSifre = "odev"; } public VeritabaniBaglanti(String url, String kadi, String sifre) { this.vtURL = url; this.vtKullaniciadi = kadi; this.vtSifre = sifre; } public Connection baglan() throws Exception { if (connection != null) { if (connection.isClosed() == false) { return connection; } } Class.forName("org.apache.derby.jdbc.ClientDriver"); connection = (Connection) DriverManager.getConnection(vtURL, vtKullaniciadi, vtSifre); System.out.println("veritabanina baglanildi"); return connection; } public void baglantiyikes() throws Exception { if (connection != null) { if (connection.isClosed()) { connection.close(); } } } }

Kullanicilar.Java Kaynak Kodlari ;

package kullanicilar; public class Kullanicilar { private String username; private String adi; private String soyadi; public Kullanicilar() { } public String getAdi() {        return adi;    } public void setAdi(String adi) {        this.adi = adi;    } public String getSoyadi() {        return soyadi;    } public void setSoyadi(String soyadi) {       this.soyadi = soyadi;    } public String getUsername() {        return username;    } public void setUsername(String username) {        this.username = username;    } }  

Web Service Olusturma ;

Projenin SourcePackages i uzerinde sag click ile New->Other diyoruz, hemen ardindan asagida ki gibi kategorilerden Web Services i secip, file types 'i Web service secilip next butonunu clickliyoruz.

              Karsimiza gelen ekranda web service'imize bir isim veriyoruz. Kullanicilar ile ilgili bir web service olusturacagim icin uygun bir isim veriyorum. Ve asagida bulunan web service' i implement etmesi icin gerekli tick'i isaretliyoruz.

                    Boylelikle karsimiza KullanicilarWebService.Java isminde bir class gelmis olacak. Bu class ile birlikte projeye eklenen web service ile ilgili diger paket isimleri de bulunacaktir.

Uygulamamizda kullanicilar ile ilgili verileri listeyecegimiz icin olusturdugumuz web service class'i icerisine yeni bir operation eklememiz gerekiyor. Bunun icin projemize eklenmis olan Web Services paketi icerisinde ki az once olusturdugumuz kullanicilar web service ile ilgili service i secip uzerinde sag click yapiyoruz ve Add Operation... i seciyoruz. Karsimiza gelen erkanda asagida ki gibi isim olarak operationKullaniciListeleme verebiliriz. Ve artik gerekli komutlari yazmaya baslayabiliriz.

KullanicilarWebService.Java Kaynak Kodlari ;

package kullanicilar; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import javax.jws.WebService; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.ejb.Stateless; @WebService(serviceName = "KullanicilarWebService") @Stateless() public class KullanicilarWebService { private Connection connect; private PreparedStatement prs; @WebMethod(operationName = "hello") public String hello(@WebParam(name = "name") String txt) { return "Hello " + txt + " !"; }

  private List<Kullanicilar> kullanici = new ArrayList<Kullanicilar>();

    public List<Kullanicilar> getKullanici() {        return kullanici;    }

    public void setKullanici(List<Kullanicilar> kullanici) {        this.kullanici = kullanici;    }

    public List<Kullanicilar> listeleme(String username) throws Exception

    {

            VeritabaniBaglanti vi = new VeritabaniBaglanti();

            connect = vi.baglan();

            String sorgu = "SELECT * FROM kullanicilar where username=?";          

            prs = connect.prepareStatement(sorgu);

            prs.setString(1, username);          

            ResultSet rs = prs.executeQuery();         

            while(rs.next())

            {

              Kullanicilar un = new Kullanicilar();             

              un.setUsername(rs.getString("username"));

              un.setAdi(rs.getString("adi"));

              un.setSoyadi(rs.getString("soyadi"));             

             kullanici.add(un);

            }           

            prs.execute();

            prs.close();

            vi.baglantiyikes();           

     return kullanici;               

           }  

@WebMethod(operationName = "operationKullaniciListeleme")

public Kullanicilar operationKullaniciListeleme

(@WebParam(name = "username") String username) throws Exception {

Kullanicilar k1 = new Kullanicilar();

        List<Kullanicilar> kk = listeleme(username);

        for(int i=0; i<kk.size(); i++)        {

            k1 = kk.get(i);        }

        return k1;     

} } Kodlari yazdiktan sonra projeyi deploy edelim ve hemen ardindan yine web service paketi icerisinde ki kullanicilarwebservice uzerinde sag click ile web service'imizi Test Web Service secenegi ile test edelim.

        Test ekrani asagida ki gibi karsimiza gelecektir. Burada kullanmis oldugumuz tum metodlari karsimiza geliyor. Listeleme islemi ile ilgili olan metodun icerisinde ki inputbox icerisine arattiracagimiz ve verilerini listelettirecegimiz username'i giriyoruz.

                    Butonu tikladiktan sonra asagida ki gibi karsimiza sonuc ekrani gelecektir.

Web Service Client Olusturma ;

Oncelikle SourcePackages icerisinde bos bir paket olusturuyoruz. Bu paketi referans alarak kendisi ile ilgili dosyalari olusturabilecektir. Paketin ismini clientpaketi olarak veriyorum. Ve sourcepackages uzerinde sag click yapip new->other lokasyonu ile projemize asagida ki gibi yeni bir web service client ekliyoruz.

            Olusturacagimiz client dosyasi ile ilgili Wsdl ve Client lokasyonlarini asagida ki gibi belirliyoruz.

                        Projemizi browse butonu yardimi ile onceden olusturmus oldugumuz KullanicilarWebService'imizi seciyoruz.

            Client erisimi icin asagida ki gibi Soap ayarini yapiyoruz.

            Projemize yeni bir JSF Managed Bean class'i olusturuyor ve asagida ki kodlari yaziyoruz. Boylelikle kendisi paketimiz icerisine KullanicilarWebServicePort.Java isimli class'i otomatik olarak olusturmus olacaktir.

KullaniciJSFManagedBean.Java Kaynak Kodlari ;

package kullanicilar; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped;

import clientpaketi.Exception_Exception;

import clientpaketi.KullanicilarWebService_Service;

@ManagedBean @RequestScoped public class KullaniciJSFManagedBean { public KullaniciJSFManagedBean() { } private String username; public String getUsername() {        return username;    } public void setUsername(String username) {        this.username = username;    } public String getir() throws Exception_Exception {

   KullanicilarWebService_Service service = new KullanicilarWebService_Service();

       clientpaketi.KullanicilarWebService port = service.getKullanicilarWebServicePort();

       System.out.println(port.operationKullaniciListeleme(username).getUsername());

       System.out.println(port.operationKullaniciListeleme(username).getAdi());

       System.out.println(port.operationKullaniciListeleme(username).getSoyadi());

return "";

} }

Index.Xhtml Kaynak Kodu ;

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>Facelet Title</title> </h:head> <h:body> <h:form>

   <h:inputText value="#{kullaniciJSFManagedBean.username}"></h:inputText>

            <h:commandButton action="#{kullaniciJSFManagedBean.getir()}" value="Getir"></h:commandButton>

</h:form> </h:body> </html> Projeyi tekrardan deploy edip, calistirdigimiz zaman karsimiza gelen index.xhtml ile inputbox'in icerisine username'i gireriz.

        Ve arka planda gelen yanitlari GlassFish Server 'in output ekraninda gorebiliriz.

            Keyifli Calismalar Dilerim...

Recent Posts

See All
C# Dependency Injection

Dependency Injection (DI) aslinda bir tasarım şablonu olarak bilinmektedir ve genel amacı nesneler arasında bulunan bağımlılıkları azaltarak kullandığı İnterface'ler sayesinde implement edilen içerikl

 
 
 
Windows Azure Nedir?

Windows Azure, hizmet yönetim ortamlarını ve servislerini barındırarak geliştirilmiş bulut teknolojilerinin oluştuğu bir işletim sistemi gibi düşünülebilir. Windows azure, Microsoft veri merkezleri

 
 
 
Navigation - Navigasyon

Kullanıcıların Metro Style uygulamalarında kolay bir şekilde kullanabilmeleri ve sayfalar arası geçişleri daha sezgizel bir şekilde yapabilmeleri için geliştirilmiş bir yöntemdir. Bu özellik sayesinde

 
 
 

Comments


©2035 by Sevdanur Genc. Powered and secured by Wix

bottom of page