24 Mayıs 2010 Pazartesi

Exception Handling with JAX-RPC

SOAP Web Serviste; fault’lar sunucu tarafından istemci tarafına SOAP Fault formlar olarak sunulmaktadır. SOAP Fault’lar faultCode, faultString ve tercihe bağlı olarak detaylardan mevcuttur.JAX-RPC spesifikasyonu Java Exception’larını SOAP Fault larla ilişkilendirmek için bazı kurallar tanımlamıştır. Sunucu tarafında Java Exception’larını SOAP fault’lara ve yine aynı şekilde istemci tarafında SOAP faultları Java Exception’larla eşleştirir. Sunucu tarafından fırlatılan 4 çeşit Exception vardır.

1. java.rmi.RemoteException

2. java.lang.RuntimeException

3. javax.xml.rpc.soap.SOAPFaultException

4. Kullanıcı tarafından tanımlanan Exception’lar.

RemoteException

JAX-RPC, Service Endpoint Interface (SEI) içinde tanımlanan metodların hepsi java.rmi.RemoteException’ı fırlatmaktadır.

RuntimeException

Sunucu tarafında JAX-RPC calışma zamanında Runtim

e Exception fırlatırsa (Örn:NullPointerException), fırlatılan exception istemci tarafında SOAP Fault olarak algılanır. İstemci SOAP Fault’ları RuntimeException ya da SOAPFaultException olarak yakalayabilir.

SOAPFaultException

SOAPFaultException, özel bir RuntimeException da diyebiliriz. SOAPFaultException RuntimeException’a göre daha tanımlayıcıdır. SOAPFaultException genelde JAX-RPC handler’ı tarafından kullanılmaktadır.

Kullanıcı Exception

Kullanıcı Exception’ları iyi bir programlama pratigidir. JAX-RPC dünyasında yazılım geliştiriciler wsdl:operation’ın içinde wsdl:faults tanımlamaya ihtiyaç duyarlar. wsdl:operation birden fazla wsdl:fault tanımlamaya izin verir bu da Java daki biden fazla exception fırlatmasına izin vermesine benziyor. Her bir wsdl:fault SEI’deki bir exception’ı tanımlar. WSDL örneği ve bununla eşleşen Java sınıfı aşağıdaki gibidir.



















http://www.ibm.com/developerworks/webservices/library/ws-tip-jaxrpc.html

Hiç yorum yok: