SlideShare a Scribd company logo
Mustafa DEMİR&Mustafa DAŞGINSpring Web Service
Biz Kimiz ?Mustafa DEMİRODTÜ BilgisayarMühendisliğiBölümü - 2005 Spring teknolojileri, JSF ve HibernateÇevik uygulama geliştirme, TDD, TasarımÖrüntülerihttp://demirm.blogspot.commustafademir@gmail.comMustafa DAŞGINHacettepeÜniversitesiBilgisayarMühendisliğiBölümü - 2006 Spring teknolojileri, JSF ve HibernateRefactoring, TDD, TasarımÖrüntüleri“Ucundan Java” http://mdasgin.blogspot.comdasgin@gmail.com
İçerikWeb Service Nedir ?WS GeliştirimYaklaşımlarıNedenAnlaşmaÖnce ?Neden Spring WS ?Spring WS TerimleriSpring WS MimarisiÖrnekUygulama (Sunucu-İstemci)KaynakçaSorular
Web Service Nedir ?Birağüzerindenfarklıplatformlaramensupmakinelerinbirlikteçalışabilirliğinidestekleyecekşekildetasarlananyazılımsistemleri.Servisvebileşenlerin “tekrarkullanılabilirliği”Web Service vs. RPC/RMIXML
WS GeliştirimYaklaşımlarıWSDL (Web Services Description Language)XML BelgesiData Contract (XML Schema)WS’ninKonumuWS’ninSunduğuHizmetler (Operasyonlar)AnlaşmaÖnce (Contract First)AnlaşmaSonra (Contract Last)
AnlaşmaÖnceYaklaşımıWSDL belgesibazalınırSunucuveistemcibirbirindenbağımsızgerçekleştirilir. Büyükprojeleriçinidealdir.WSDL, SOAP ve XSD ayrıntısınagirilir.Öğrenimveuygulamasüresiniuzatır.İşmantığıdışındakiayrıntılarladauğraştırır.
AnlaşmaSonraYaklaşımıGerçekleştirimbazalınırWSDL , SOAP ve XSD ayrıntısınagirilmez.Öğrenimveuygulamasüresikısadır.Sadeceişmantığıylailgilenmenizisağlar.Sunucuveistemcigeliştirimibirbirinebağımlıdır.BüyükProjeleriçin ideal değildir.
NedenAnlaşmaÖnce ?O/X Mapping SorunlarıDavranışFarklılıklarıJava – AltsınıfXSD – Kısıtlamalar<simpleType name="AirportCode"> 	<restriction base="string"> 	<pattern value="[A-Z][A-Z][A-Z]"/> </restriction></simpleType>
NedenAnlaşmaÖnce ?DesteklenmeyenveritipleriJava – java.util.TreeMap.Net – System.Collections.HashtableXML – date tipi: 2007-04-04Java Date ve Calendar sınıfı: 2007-04-04T00:00:00<element name="GetFlightsRequest"><complexType><all><element name="departureDate" type="date"/> <element name="from" type="string"/> <element name="to" type="string"/></all></complexType></element>
NedenAnlaşmaÖnce ?Döngüsel İlişkilerpublic class Flight { private String number; private List<Passenger> passengers;} public class Passenger { private String name; private Flight flight;}<flight number="KL1117"><passengers><passenger> <name>ArjenPoutsma</name><flight number="KL1117"><passengers> <passenger><name>ArjenPoutsma</name>...
NedenAnlaşmaÖnce ?KırılganlıkAnlaşma sonra yaklaşım ile anlaşmanın uzun süre sabit kalma garantisi yoktur.Kod değiştikçe anlaşma da değişir.Kullanılan Web Service mimarisinde değişikliğe gidilmesi üretilen anlaşmayı da değiştirir.Sunucu kodundan kaynaklı anlaşma değişikliği her defasında istemci kodlarının da değişikliğini gerektirir.Anlaşmanın yararlı olması için uzun süre sabit kalması gerekir.
NedenAnlaşmaÖnce ?PerformansAnlaşma sonra yaklaşımda karşıya neyin gönderileceği belli değildir. Nesnenin ilişkili olduğu bir çok nesne XML’e dönüştürülüp gönderilebilir ve bu esnada performans ve cevap süreleri etkilenir.Anlaşmanın belli olduğu durumda XML’de neyin karşıya gönderileceği açıkça bellidir.Tekrar KullanılabilirlikXSD bilgisini ayrı bir dosyada tanımlayarak tekrar kullanılabilirliğini sağlanabilir.
Neden Spring WS ?Anlaşma önce yaklaşımın eksikliklerini kapatır.WSDL  ve SOA ayrıntılarıyla uğraştırmaz. Sadece XSD şemasıÖğrenim ve uygulama süresi çok kısadır Spring mantığını bilen geliştiriciler için.İş mantığı dışındaki ayrıntıların çoğunu üstlenir.Anlaşma ve gerçekleştirim arasındaki bağımlılığı azaltır.
Neden Spring WS ?Gelen XML mesajı, içeriğine göre herhangi bir nesneye mapping yapılabilir.XML mesajı çeşitli XML API’leri kullanılarak işlenebilir. (DOM, SAX, StAX, JDOM, dom4j, XOM)O/X Mapping modülü sayesinde çeşitli çatılar ile uyumlu çalışır. (JAXB 1 ve 2, Castor, XMLBeans, JiBX, and XStream)SOAP mesajlarının şifrelenmesi için WS-Security desteği sağlar.Spring Security(Acegi Security) ile bütünleşik çalışabilir böylece varsa Acegi ayarları SOAP servisleri için kullanılabilir.
İçerikWeb Service Nedir ?WS GeliştirimYaklaşımlarıNedenAnlaşmaÖnce ?Neden Spring WS ?Spring WS TerimleriSpring WS MimarisiÖrnekUygulama (Sunucu-İstemci)KaynakçaSorular
Spring WS TerimleriWebServiceMessagePlatform bağımsız XML mesajlarını ifade eder.Web mesajlarındaki payload kısmına erişimi sağlarSoapMessageSOAP için gerekli operasyonları içeren arayüzdür.SOAP EnvelopeSOAP ActionSOAP Headeretc..
Spring WS TerimleriMessageFactory SınıflarıWeb servis mesajları oluşturmayı sağlarlar.Farklı kaynaklardan (input streams) web servis mesajları oluşturmaya yardımcı olurlar.Gerçekleştirimleri:SaajSoapMessageFactory (SOAP with Attachments API for Java)JEE 1.4 ün parçası– uygulama sunucuları tarafından en çok desteklenen türDOM API sini kullanır – SOAP mesajları bellekte tutulur. Büyük mesajlar için performanslı değildir.
Spring WS TerimleriMessageFactory SınıflarıAxiomSoapMessageFactoryAxis 2 Object Model kullanır.STAX (Streaming API for XML) üzerine kuruludur.Büyük mesajlar için uygundur.
Veri Alış-VerişiHTTP TransportYaygın şekilde kullanılmaktaServlet aracılığı ile yapılmakta<web-app> <servlet>        <servlet-name>spring-ws</servlet-name>    <servlet-class>     org.springframework.ws.transport.http.MessageDispatcherServlet   </servlet-class>    <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>spring-ws</servlet-name>    <url-pattern>/*</url-pattern>  </servlet-mapping> </web-app>
Veri Alış-VerişiHTTP Transport ...Otomatik WSDL ÜretimiWsdlDefinition bean tanımları taranır.Bean id si ile dışarı açılır (expose)<bean id="orders" class="org.springframework.ws.wsdl.wsdl11.SimpleWsdl11Definition">       <constructor-arg value="/WEB-INF/wsdl/Orders.wsdl"/> </bean>http://localhost:8080/spring-ws/orders.wsdl
Veri Alış-VerişiSpring MVC - DispatcherServletJMS TransportEmail TransportEmbedded HTTP Server TransportÖrnek uygulama da kullanılacak.
Spring WS Mimarisi
Spring WS Mimarisi	    Sequence Diagram Spring Referans dokümanından alınmıştır.
EndpointsWeb servismesajlarının iletildiği noktalardır.İş katmanıile web servisarasındakiiletişimisağlarİş mantığı sonrası web servis cevabı oluşturulur ve dönülür.PayloadEndpoint arayüzünden gerçekleştirilir.public interface PayloadEndpoint { /** * Invokes an operation. */Source invoke(Source request) throws Exception; }
Endpoints ...MessageEndpoint ArayüzüMesajlar dışında message context e de ihtiyaç duyulmasıSOAP Header eklemekMesaj içerisinden attachment almakvs..Endpoint interceptor ler kullanılarak da yapılabilir.
Endpoints ...AbstractDomPayloadEndpointW3C DOM API kullanılır.AbstractJDomPayloadEndpoint – JDOM APIAbstractXomPayloadEndpoint – XOM APIpackage sunum; public class SampleEndpoint extends AbstractDomPayloadEndpoint {    protected Element invokeInternal(Element requestElement, Document document) throws Exception { 	String requestText = requestElement.getTextContent(); 	System.out.println("Request text: " + requestText); 	Element responseElement = document.createElementNS("http://samples", "response"); 		responseElement.setTextContent(“someResponseText"); 	return responseElement;         } }
Endpoints ...AbstractMarshallingPayloadEndpointJava nesnelerine çevrilmiş xml mesajları kullanılır.package sunum; public class MarshallingOrderEndpoint extends AbstractMarshallingPayloadEndpoint{ 	protected Object invokeInternal(Object request) throws Exception { 		//do some job	} }
Endpoints ...Annotated Endpoints@Endpoint annotation ile kullanılır.Tek endpoint sınıfında birden fazla istem ele alınabilir.@PayloadRoot annotation ı ile sağlanır.package sunum; @Endpointpublic class AnnotationOrderEndpoint { @PayloadRoot(localPart = "orderRequest", namespace = "http://samples") 	public Order getOrder(OrderRequest orderRequest) { 		// get order	} @PayloadRoot(localPart = "order", namespace = "http://samples") 	public void order(Order order) { 		// Create some order	}}
Endpoint Mappings	Gelen mesajların Endpoint lere iletilmesini sağlar.PayloadRootQNameEndpointMappingGelen XML mesajlarına göre yapılır.<?xml version="1.0" encoding="UTF-8"?><orderRequestxmlns="http://samples">    </orderRequest><bean id="endpointMapping"        class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">       <property name="mappings"> 	<props> 	     <prop key="{http://samples}orderRequest">getOrderEndpoint</prop> 	</props>      </property> </bean><bean id="getOrderEndpoint" class=“somepackage.GetOrderEndPoint" />
Endpoint Mappings ...SoapActionEndpointMappingSOAP Action header a göre yapılır.MethodEndpointMapping(@EndPoint)PayloadRootAnnotationMethodEndpointMapping  (@PayloadRoot)Gelen XML mesajıSoapActionAnnotationMethodEndpointMapping	 (@SoapAction)SOAP Action Header
İçerikWeb Service Nedir ?WS GeliştirimYaklaşımlarıNedenAnlaşmaÖnce ?Neden Spring WS ?Spring WS TerimleriSpring WS MimarisiÖrnekUygulama (Sunucu-İstemci)KaynakçaSorular
ÖrnekUygulamaData Contract Hazırlanması (XML Şema)Sunucu GeliştirimiAnnotation tabanlıWSDL Üretilmesiİstemci Geliştirimi
Spring WS Mimarisi
KaynakçaSpring Web Services Project Pagehttp://static.springsource.org/spring-ws/sites/1.5/http://static.springsource.org/spring-ws/sites/1.5/reference/html/index.htmlSOA: Principles of Service DesignThomas Erl, Prentice Hall
 TeşekkürlerSorular..

More Related Content

PPTX
Silverlight ve Sharepoint 2010
PPTX
Web service
PPTX
Jsf
PPTX
WCF'e Giriş
PPTX
ASPNET Web API
PPTX
WEB SERVİCE
PDF
REST yoluyla Web Servis Geliştirme
PDF
Işık Üniversitesi - Spring Core
Silverlight ve Sharepoint 2010
Web service
Jsf
WCF'e Giriş
ASPNET Web API
WEB SERVİCE
REST yoluyla Web Servis Geliştirme
Işık Üniversitesi - Spring Core

Similar to Spring Web Service (16)

PPT
Flex blaze ds
PPTX
Web servisi güvenliği
PPT
java 6 (rmi-corba) education
PDF
WP REST API ve WordPress Ekosisteminin Geleceği
PPTX
.NET Core ile RESTful API Design
PPT
Volkan Gul Ali Kusmus Osman Marangoz Service Oriented Architecture2
PDF
Spring application framework
PPTX
Microservices Architecture
PDF
Java ve axis2 framework ile web service yayınlamak
PPTX
sunum_Service Oriented Architecture (SOA)_off2007
PDF
Kurumsal Java & Web Teknolojileri
PPTX
Microservices
PDF
Radore Workshop: Wordpress Nereye Koşuyor?
PPTX
Servlet Container Nedir?
PPT
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
PPTX
SoapUI ile Rest Api Testi
Flex blaze ds
Web servisi güvenliği
java 6 (rmi-corba) education
WP REST API ve WordPress Ekosisteminin Geleceği
.NET Core ile RESTful API Design
Volkan Gul Ali Kusmus Osman Marangoz Service Oriented Architecture2
Spring application framework
Microservices Architecture
Java ve axis2 framework ile web service yayınlamak
sunum_Service Oriented Architecture (SOA)_off2007
Kurumsal Java & Web Teknolojileri
Microservices
Radore Workshop: Wordpress Nereye Koşuyor?
Servlet Container Nedir?
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
SoapUI ile Rest Api Testi
Ad

Spring Web Service

  • 2. Biz Kimiz ?Mustafa DEMİRODTÜ BilgisayarMühendisliğiBölümü - 2005 Spring teknolojileri, JSF ve HibernateÇevik uygulama geliştirme, TDD, TasarımÖrüntülerihttp://demirm.blogspot.commustafademir@gmail.comMustafa DAŞGINHacettepeÜniversitesiBilgisayarMühendisliğiBölümü - 2006 Spring teknolojileri, JSF ve HibernateRefactoring, TDD, TasarımÖrüntüleri“Ucundan Java” http://mdasgin.blogspot.comdasgin@gmail.com
  • 3. İçerikWeb Service Nedir ?WS GeliştirimYaklaşımlarıNedenAnlaşmaÖnce ?Neden Spring WS ?Spring WS TerimleriSpring WS MimarisiÖrnekUygulama (Sunucu-İstemci)KaynakçaSorular
  • 4. Web Service Nedir ?Birağüzerindenfarklıplatformlaramensupmakinelerinbirlikteçalışabilirliğinidestekleyecekşekildetasarlananyazılımsistemleri.Servisvebileşenlerin “tekrarkullanılabilirliği”Web Service vs. RPC/RMIXML
  • 5. WS GeliştirimYaklaşımlarıWSDL (Web Services Description Language)XML BelgesiData Contract (XML Schema)WS’ninKonumuWS’ninSunduğuHizmetler (Operasyonlar)AnlaşmaÖnce (Contract First)AnlaşmaSonra (Contract Last)
  • 6. AnlaşmaÖnceYaklaşımıWSDL belgesibazalınırSunucuveistemcibirbirindenbağımsızgerçekleştirilir. Büyükprojeleriçinidealdir.WSDL, SOAP ve XSD ayrıntısınagirilir.Öğrenimveuygulamasüresiniuzatır.İşmantığıdışındakiayrıntılarladauğraştırır.
  • 7. AnlaşmaSonraYaklaşımıGerçekleştirimbazalınırWSDL , SOAP ve XSD ayrıntısınagirilmez.Öğrenimveuygulamasüresikısadır.Sadeceişmantığıylailgilenmenizisağlar.Sunucuveistemcigeliştirimibirbirinebağımlıdır.BüyükProjeleriçin ideal değildir.
  • 8. NedenAnlaşmaÖnce ?O/X Mapping SorunlarıDavranışFarklılıklarıJava – AltsınıfXSD – Kısıtlamalar<simpleType name="AirportCode"> <restriction base="string"> <pattern value="[A-Z][A-Z][A-Z]"/> </restriction></simpleType>
  • 9. NedenAnlaşmaÖnce ?DesteklenmeyenveritipleriJava – java.util.TreeMap.Net – System.Collections.HashtableXML – date tipi: 2007-04-04Java Date ve Calendar sınıfı: 2007-04-04T00:00:00<element name="GetFlightsRequest"><complexType><all><element name="departureDate" type="date"/> <element name="from" type="string"/> <element name="to" type="string"/></all></complexType></element>
  • 10. NedenAnlaşmaÖnce ?Döngüsel İlişkilerpublic class Flight { private String number; private List<Passenger> passengers;} public class Passenger { private String name; private Flight flight;}<flight number="KL1117"><passengers><passenger> <name>ArjenPoutsma</name><flight number="KL1117"><passengers> <passenger><name>ArjenPoutsma</name>...
  • 11. NedenAnlaşmaÖnce ?KırılganlıkAnlaşma sonra yaklaşım ile anlaşmanın uzun süre sabit kalma garantisi yoktur.Kod değiştikçe anlaşma da değişir.Kullanılan Web Service mimarisinde değişikliğe gidilmesi üretilen anlaşmayı da değiştirir.Sunucu kodundan kaynaklı anlaşma değişikliği her defasında istemci kodlarının da değişikliğini gerektirir.Anlaşmanın yararlı olması için uzun süre sabit kalması gerekir.
  • 12. NedenAnlaşmaÖnce ?PerformansAnlaşma sonra yaklaşımda karşıya neyin gönderileceği belli değildir. Nesnenin ilişkili olduğu bir çok nesne XML’e dönüştürülüp gönderilebilir ve bu esnada performans ve cevap süreleri etkilenir.Anlaşmanın belli olduğu durumda XML’de neyin karşıya gönderileceği açıkça bellidir.Tekrar KullanılabilirlikXSD bilgisini ayrı bir dosyada tanımlayarak tekrar kullanılabilirliğini sağlanabilir.
  • 13. Neden Spring WS ?Anlaşma önce yaklaşımın eksikliklerini kapatır.WSDL ve SOA ayrıntılarıyla uğraştırmaz. Sadece XSD şemasıÖğrenim ve uygulama süresi çok kısadır Spring mantığını bilen geliştiriciler için.İş mantığı dışındaki ayrıntıların çoğunu üstlenir.Anlaşma ve gerçekleştirim arasındaki bağımlılığı azaltır.
  • 14. Neden Spring WS ?Gelen XML mesajı, içeriğine göre herhangi bir nesneye mapping yapılabilir.XML mesajı çeşitli XML API’leri kullanılarak işlenebilir. (DOM, SAX, StAX, JDOM, dom4j, XOM)O/X Mapping modülü sayesinde çeşitli çatılar ile uyumlu çalışır. (JAXB 1 ve 2, Castor, XMLBeans, JiBX, and XStream)SOAP mesajlarının şifrelenmesi için WS-Security desteği sağlar.Spring Security(Acegi Security) ile bütünleşik çalışabilir böylece varsa Acegi ayarları SOAP servisleri için kullanılabilir.
  • 15. İçerikWeb Service Nedir ?WS GeliştirimYaklaşımlarıNedenAnlaşmaÖnce ?Neden Spring WS ?Spring WS TerimleriSpring WS MimarisiÖrnekUygulama (Sunucu-İstemci)KaynakçaSorular
  • 16. Spring WS TerimleriWebServiceMessagePlatform bağımsız XML mesajlarını ifade eder.Web mesajlarındaki payload kısmına erişimi sağlarSoapMessageSOAP için gerekli operasyonları içeren arayüzdür.SOAP EnvelopeSOAP ActionSOAP Headeretc..
  • 17. Spring WS TerimleriMessageFactory SınıflarıWeb servis mesajları oluşturmayı sağlarlar.Farklı kaynaklardan (input streams) web servis mesajları oluşturmaya yardımcı olurlar.Gerçekleştirimleri:SaajSoapMessageFactory (SOAP with Attachments API for Java)JEE 1.4 ün parçası– uygulama sunucuları tarafından en çok desteklenen türDOM API sini kullanır – SOAP mesajları bellekte tutulur. Büyük mesajlar için performanslı değildir.
  • 18. Spring WS TerimleriMessageFactory SınıflarıAxiomSoapMessageFactoryAxis 2 Object Model kullanır.STAX (Streaming API for XML) üzerine kuruludur.Büyük mesajlar için uygundur.
  • 19. Veri Alış-VerişiHTTP TransportYaygın şekilde kullanılmaktaServlet aracılığı ile yapılmakta<web-app> <servlet> <servlet-name>spring-ws</servlet-name> <servlet-class> org.springframework.ws.transport.http.MessageDispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring-ws</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
  • 20. Veri Alış-VerişiHTTP Transport ...Otomatik WSDL ÜretimiWsdlDefinition bean tanımları taranır.Bean id si ile dışarı açılır (expose)<bean id="orders" class="org.springframework.ws.wsdl.wsdl11.SimpleWsdl11Definition"> <constructor-arg value="/WEB-INF/wsdl/Orders.wsdl"/> </bean>http://localhost:8080/spring-ws/orders.wsdl
  • 21. Veri Alış-VerişiSpring MVC - DispatcherServletJMS TransportEmail TransportEmbedded HTTP Server TransportÖrnek uygulama da kullanılacak.
  • 23. Spring WS Mimarisi Sequence Diagram Spring Referans dokümanından alınmıştır.
  • 24. EndpointsWeb servismesajlarının iletildiği noktalardır.İş katmanıile web servisarasındakiiletişimisağlarİş mantığı sonrası web servis cevabı oluşturulur ve dönülür.PayloadEndpoint arayüzünden gerçekleştirilir.public interface PayloadEndpoint { /** * Invokes an operation. */Source invoke(Source request) throws Exception; }
  • 25. Endpoints ...MessageEndpoint ArayüzüMesajlar dışında message context e de ihtiyaç duyulmasıSOAP Header eklemekMesaj içerisinden attachment almakvs..Endpoint interceptor ler kullanılarak da yapılabilir.
  • 26. Endpoints ...AbstractDomPayloadEndpointW3C DOM API kullanılır.AbstractJDomPayloadEndpoint – JDOM APIAbstractXomPayloadEndpoint – XOM APIpackage sunum; public class SampleEndpoint extends AbstractDomPayloadEndpoint { protected Element invokeInternal(Element requestElement, Document document) throws Exception { String requestText = requestElement.getTextContent(); System.out.println("Request text: " + requestText); Element responseElement = document.createElementNS("http://samples", "response"); responseElement.setTextContent(“someResponseText"); return responseElement; } }
  • 27. Endpoints ...AbstractMarshallingPayloadEndpointJava nesnelerine çevrilmiş xml mesajları kullanılır.package sunum; public class MarshallingOrderEndpoint extends AbstractMarshallingPayloadEndpoint{ protected Object invokeInternal(Object request) throws Exception { //do some job } }
  • 28. Endpoints ...Annotated Endpoints@Endpoint annotation ile kullanılır.Tek endpoint sınıfında birden fazla istem ele alınabilir.@PayloadRoot annotation ı ile sağlanır.package sunum; @Endpointpublic class AnnotationOrderEndpoint { @PayloadRoot(localPart = "orderRequest", namespace = "http://samples") public Order getOrder(OrderRequest orderRequest) { // get order } @PayloadRoot(localPart = "order", namespace = "http://samples") public void order(Order order) { // Create some order }}
  • 29. Endpoint Mappings Gelen mesajların Endpoint lere iletilmesini sağlar.PayloadRootQNameEndpointMappingGelen XML mesajlarına göre yapılır.<?xml version="1.0" encoding="UTF-8"?><orderRequestxmlns="http://samples"> </orderRequest><bean id="endpointMapping" class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping"> <property name="mappings"> <props> <prop key="{http://samples}orderRequest">getOrderEndpoint</prop> </props> </property> </bean><bean id="getOrderEndpoint" class=“somepackage.GetOrderEndPoint" />
  • 30. Endpoint Mappings ...SoapActionEndpointMappingSOAP Action header a göre yapılır.MethodEndpointMapping(@EndPoint)PayloadRootAnnotationMethodEndpointMapping (@PayloadRoot)Gelen XML mesajıSoapActionAnnotationMethodEndpointMapping (@SoapAction)SOAP Action Header
  • 31. İçerikWeb Service Nedir ?WS GeliştirimYaklaşımlarıNedenAnlaşmaÖnce ?Neden Spring WS ?Spring WS TerimleriSpring WS MimarisiÖrnekUygulama (Sunucu-İstemci)KaynakçaSorular
  • 32. ÖrnekUygulamaData Contract Hazırlanması (XML Şema)Sunucu GeliştirimiAnnotation tabanlıWSDL Üretilmesiİstemci Geliştirimi
  • 34. KaynakçaSpring Web Services Project Pagehttp://static.springsource.org/spring-ws/sites/1.5/http://static.springsource.org/spring-ws/sites/1.5/reference/html/index.htmlSOA: Principles of Service DesignThomas Erl, Prentice Hall

Editor's Notes

  • #33: The most important thing when doing contract-first Web service development is to try and think in terms of XML. This means that Java-language concepts are of lesser importance.nIn Spring-WS, you will implement Endpoints to handle incoming XML messages. There are two flavors of endpoints: message endpoints and payload endpoints. Message endpoints give access to the entire XML message, including SOAP headers. Typically, the endpoint will only be interested in the payload of the message, that is the contents of the SOAP body. In that case, creating a payload endpoint makes more sense.