Bir web hizmeti DİNLENME programlama paradigmasını veya iletişim için SOAP protokolünü kullanarak müşterilerine hizmet yöntemlerini sağlayan bir hizmettir. Bir web hizmetini uygulamanın birkaç yolu vardır. Bir web hizmeti yazmak için en basit yolu, bir sınıf ve açıklama yazmaya olacağını @WebServiceve @WebMethodgelen ek açıklamalar javax.jwsve ardından a dan başlatınmain ile kullanılan yöntem:
Endpoint.publish("http://localhost:8089/myservice", new MyWebService());
Sonuç, görüntüleyebilmenizdir. WSDL kayıtlı URL'den ve SoapUI varsa veya herhangi bir başka SOAP istemci ayrıca test etmek ve web hizmeti kullanabilirsiniz.
Öte yandan, HTTP isteklerini ve yanıtlarını taşımak için bir sunucu uygulaması kullanılır . JSP'ler ve HTML ile bir web uygulaması yazmak veya XML ve JSON yanıtları (bir RESTful hizmetinde olduğu gibi) sunmak ve tabii ki SOAP mesajlarını almak ve döndürmek için de kullanılabilir. Web servislerinin altında bir katman olarak düşünebilirsiniz . Servletlerin şu anda Java Servlet Specification Version 4.0 olan kendi standartları vardır.
Daha kapsamlı ve pratik bir yaklaşım, çerçeveli bir web hizmeti yazmak ve bunu Tomcat veya JBoss gibi bir uygulama sunucusunda veya servlet kapsayıcısında yayınlamaktır. Bu durumda, SOAP veya REST mesajlarınızı ileten HTTP isteklerinin taşınmasını işlemek için bir Servlet kullanırsınız.
Servlet teknolojisine sahip bir web hizmeti yazmak için örneğin JAX-WS'yi kullanabilirsiniz (örn. SOAP için). RESTful hizmetleri yazmak için, JAX- RS'yi (referans uygulaması Jersey'dir ) veya alternatif olarak Spring WebMVC'yi kullanabilirsiniz. , ancak bildiğim kadarıyla bu çerçevenin ana amacı bu değil ve Jersey oldukça önemli. kullanımı daha kolay.
İkinci soru ile ilgili olarak: @ControllerEk açıklama bir Pınar Fasulye yapmak gerekiyordu ne hakkında Bahar şey söyler belirli klişe açıklama. Bir denetleyicinin bir yönteminin tam olarak ne döndüreceği, yöntemlerinizin gerçek uygulamasına bağlıdır; Spring'i düz metin, HTML, JSON, XML, ikili veri veya istediğiniz her şeyi döndürecek şekilde yapılandırabilirsiniz.
Yandaki bir not, üzerinde not verilen bir sınıf @Controllerhenüz bir sunucu uygulaması değil, sadece bir fasulyedir. Sunucu uygulamalarını nasıl kullandığınız, esas olarak kullandığınız Çerçeveye bağlıdır. Örneğin, Yay'ı kullandığınızda, servlet işi, DispatcherServlettalepleri doğru çekirdeklere ileten Springs tarafından yapılır . Tomcat kullanıyorsanız, o zaman javax.servlet.http.HttpServletsınıfın alt sınıflarını oluşturarak ve doGettarayıcınızdan HTTP GET isteklerine yanıt veren gibi gerekli yöntemlerin üzerine yazarak doğrudan kendi sunucu uygulamalarınızı yazabilirsiniz .