JAXB Veri Tipleri

 

XML Schema Type Java Data Type
xsd:string java.lang.String
xsd:integer java.math.BigInteger
xsd:int int
xsd.long long
xsd:short short
xsd:decimal java.math.BigDecimal
xsd:float float
xsd:double double
xsd:boolean boolean
xsd:byte byte
xsd:QName javax.xml.namespace.QName
xsd:dateTime javax.xml.datatype.XMLGregorianCalendar
xsd:base64Binary byte[]
xsd:hexBinary byte[]
xsd:unsignedInt long
xsd:unsignedShort int
xsd:unsignedByte short
xsd:time javax.xml.datatype.XMLGregorianCalendar
xsd:date javax.xml.datatype.XMLGregorianCalendar
xsd:g javax.xml.datatype.XMLGregorianCalendar
xsd:anySimpleType java.lang.Object
xsd:anySimpleType java.lang.String
xsd:duration javax.xml.datatype.Duration
xsd:NOTATION javax.xml.namespace.QName

 

Kaynak : Oracle Docs

Örnek Web Service Sınıfı

Web Servisleri hakkında genel bilgiyi “Web Servisleri, SOAP, UDDI, WSDL Nedir?“ adlı makalemde vermiştim. Bu yazımda ise örnek bir web service sınıfı nasıl yazılır bundan bahsedeceğim.

Öncelikle bir web service sınıfının genel özelliklerinden ve nasıl yazılması gerektiğinden başlayalım.

–        Sınıf içerisinde istemcilere cevap dönmeden önce veya sonra yapılacak işler için metotlar tanımlanabilir. Bu metotların başında @PostConstruct (cevaplar dönmeden hemen önce container tarafından çağrılır) ve @PreDestroy (işlem sonu container tarafından çağrılır) annotationları kullanılır.

 [codesyntax lang=”java” lines=”no”]

package com.javauzmani.webservice;

/**
 *
 * @author Erkin Pehlivan
 */

import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;

@Stateless
@WebService
public class MerhabaBean {

    public void MerhabaBean() {}

    @WebMethod
    public String merhaba(String isim) {
        return "Merhaba " + isim;
    }
}

[/codesyntax]

Web Servisleri, SOAP, UDDI, WSDL Nedir?

Web Servisleri, HTTP protokolü ile XML gönderip alarak iki uzak cihaz arasındaki iletişimi sağlayan bir haberleşme yöntemidir.

XML olması sayesinde değişik platformlar ve programlama dilleri arasında haberleşme sağlanabilir.

Web’in yaygınlaşmasından sonra farklı platformarın birbirleriyle haberleşme ihtiyacı artmıştır. Bunun için web uygulamaları geliştirilmiştir. Web sevisleri ile de web uygulamalarımız kendi fonksiyonalitelerini dış dünya ile paylaşabilir hale gelmiştir.

Web servislerinde veriler XML olarak tutulur ve SOAP kullanılarak bir yerden diğerine taşınır. Web servislerinin yapısı itibariyle farklı serverlardaki farklı platformlarda çalışan uygulamalar birbirleri ile haberleşebilirler.

Web Servislerinin 2 farklı kullanım şekli vardır :

  1. Uygulamaların sıkça ihtiyaç duydukları işler vardır. Bunları sürekli tekrar tekrar yapmaktansa servisler tarafından yapılıp uygulamalardan çağrılırlar. Örneğin hava durumunu anlık olarak öğrenen program gibi.
  2. Başka platformda çalışan bir uygulama ile haberleşilerek veri alış verişinde bulunulur.

Web Servisleri, Service Orianted Architecture (SOA)’nın implement edilmiş halidir.

SOA’da iki farklı yazılım birbirleriyle haberleşir. Bu yazılımlardan bir tanesi istemci bir tanesi ise sunucudur. İstemci sunucuya istekte bulunur, sunucu da istemciye cevabı döner.

Sunucular servis açıklamalarını özel bir dizinde tutarlar. İstemciler ise bu dizine sorgu çekerek aradıkları servis, servis sağlayıcısında var mı diye kontrol ederler.

Web Servis platformunda kullanılan standartlar şunlardır :

1-    SOAP : Simple Object Access Protokol

2-   UDDI : Universal Description, Discovery and Integration

3-   WSDL : Web Services Discription Language

SOAP :

HTTP üzerinden uygulamaların bilgi alış verişinin gerçekleşmesini sağlayan XML tabanlı bir protokoldür. Yani web servislere erişmek için kullanılan protokoldür diyebiliriz.

UDDI :

UDDI, web servislerini tanımlamak, interneti kullanarak iş servislerinin hangilerinin kullanılabilir olduğunun listelenmesi için kullanılan platform bağımsız bir frameworktür. Web servisleri hakkındaki bilgilerin depolandığı bir dizindir. İstemci ve sunucu ile SOAP ile haberleşir.

WSDL :

XML formatında yazılmış Web Service’lerin yerlerini, ne iş yaptıklarını yani metotlarını belirleyen bir dildir. 2007 yılında standart hale gelmiştir. 4 ana elemandan oluşur.

  • <types> : Web servis tarafından kullanılan veri tipleri belirlenir.
  • <message> : Web servis tarafından kullanılan mesajlar yazılır.
  • <portType> : Web servis tarafından gerçekleştirilen işlemler yazılır.
  • <binding> : Web servis tarafından kullanılan haberleşme protokolleri yazılır.

Ana Yapı

[codesyntax lang=”xml” lines=”no”]

<definitions>

	<types>
	  tip açıklamaları ........
	</types>

	<message>
	  mesaj açıklamaları ........
	</message>

	<portType>
	  port açıklamaları .......
	</portType>

	<binding>
	  binding açıklamaları .......
	</binding>

</definitions>

[/codesyntax]

Bir WSDL dokümanı bunların dışında başka elemanlar da içerebilir. Örneğin bir dokümanda birden fazla web servis tanımı yapılabilir.

WSDL İşlem Türleri :

En çok kullanılan yöntem request-response yöntemi olsa da  WSDL’de 4 çeşit işlem tipi vardır.

Tip Açıklama
One-way İşlem istek mesajını gönderir fakat cevap dönmez.
Request-response İşlem istek mesajını gönderir ve cevap döner.
Solicit-response İşlem istek mesajını gönderir ve cevap için bekler.
Notification İşlem istek mesajını gönderir fakat cevap için beklemez.