Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tutorial web service (web & client) with spring web services

3,438 views

Published on

Published in: Education, Technology
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1lite.top/NV0KW ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • permisi gan, saya ada sedikit tulisan mengenai protokol WebSocket yang saya terapkan kedalam beberapa bahasa pemrograman berikut: http://datacomlink.blogspot.co.id/2015/11/implementasi-server-websocket-rfc-6455.html ditunggu feedbacknya gan, semoga menambah wawasan bersama, terima kasih gan.. :D
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Tutorial web service (web & client) with spring web services

  1. 1. Tutorial Web Service(Web & Client) withSpring Web Servicearifnasution@ymailcom
  2. 2. Tutorial Web Service (Service & Client) with Spring Web ServicesPendahuluanAlhamdulillah, tanggal 22 mei 2013 penulis berhasil menambahkan tutorial gratis dengan judul Tutorial Web Service(Service & client) with Spring Web Services. Kenapa saya menggunakan framework Spring ? karena dari semuaframework JAVA yang ada, Spring merupakan salah satu framework yang terkenal dan lengkap dokumentasinyasehingga semoga ketika pembaca sudah bisa membuat basic web services, detail penggunaan framework bisa dibantudokumentasi dari spring secara langsung. Selain itu, tutorial ini dibuat karena penulis merasa salah satu teori ataupunframework tersulit untuk dipelajari adalah mengenai web service yang mana teknologi ke depan secara global akanberbasis web.Web service pada tutorial ini untuk melakukan proses seperti login dan merespon sesuai dengan username yang dikirim,apabila username sama dengan arif, maka akan merespon guntank dan selain username tersebut service akanmerespon failed.Pada tutorial ini, setidaknya yang harus dikuasai oleh pembaca adalah dasar-dasar algoritma, pemrograman JAVA danpenggunaan IDE Eclipse. Adapun teknologi dipakai : Eclipse-jee-indigo-SR2-win32-x86_64 JDK 1.7.0_10 Apache Tomcat 6.0.35 Spring Framework 3.1.3 Spring Web Services 2.1.1Tutorial ini terdiri dari : Pembuatan Web Service Pembuatan Web Service ClientBeberapa saran dari saya untuk mengikuti tutorial ini : Sudah memiliki semua jar Spring Framework & Spring Web Services (bisa di download di website resmi). Sudah memiliki jar common logging & wsdl4j (bisa di download di website resmi).Dimana web service maupun web service client dibuat dalam satu project.Akhir kata, tutorial ini masih banyak kekurangan dan dibuat hanya berdasarkan iseng dan mencoba berbagi sedikit ilmuyang dimiliki. Oleh karena itu, apabila ada saran maupun kritik bisa melalui email arifnasution@ymail.com.Marifnst, 2013-05-22
  3. 3. Service1. Buat dynamic web project, “New” – “Dynamic Web Project”.2. Berikan “Project Name” & klik next.
  4. 4. 3. Klik next.4. Klik finish, pastikan generate web.xml dalam kondisi di cek.
  5. 5. 5. Ambil file jar dari file spring ws seperti di gambar.6. Copy jar tersebut ke dalam project, WebContent – WEB-INF - lib.
  6. 6. 7. Klik kanan folder project, pilih “properties”.8. Pilih java build path, klik add jar.
  7. 7. 9. Masuk ke folder lib dari jar, pilih ok.10. Jar akan bertambah, pilih ok.
  8. 8. 11. Masuk ke web.xml & tambahkan baris seperti di gambar (code bisa dilihat di lampiran).12. Klik kanan WebContent – WEB-INF, “New” – “File” & beri nama login.xsd.
  9. 9. 13. Isi login.xsd (code bisa dilihat di lampiran).14. Buat file baru pada WebContent – WEB-INF, beri nama spring-ws-servlet.xml (code bisa dilihat di lampiran).
  10. 10. 15. Klik kanan folder src pada “Java Resources”, buat package baru dengan nama terserah anda (disini saya berinama sample.springws).16. Klik kanan package yang sudah dibuat, “New” – “Class”.
  11. 11. 17. Beri nama class tersebut terserah anda (disini saya beri nama OrderEndPoint).18. Isi OrderEndPoint.java (code bisa dilihat di Lampiran).
  12. 12. 19. Copy semua jar dari spring framework, untuk mencegah kekurangan dependency.20. Paste jar tersebut ke dalam folder WebContent – WEB-INF – lib.
  13. 13. 21. Tambahkan jar tersebut ke dalam java build path seperti poin 8 - 10.22. Tambahkan jar commons-loggin-<versi> & wsdl4j yang merupakan dependency jar yang dibutuhkan spring webservices. Jangan lupa menambahkan jar tersebut pada “Java Build Path”.
  14. 14. 23. Klik kanan folder project, “Run As” – “Run on Server”.24. Pilih server yang digunakan (disini saya menggunakan Apache Tomcat 6) kemudian klik next.
  15. 15. 25. Pilih project yang akan di deploy ke server & klik finish.26. Eclipse akan menampilkan status 405.
  16. 16. 27. Masuk ke url http://localhost:8080/<nama_project>/loginservices/login.wsdl, apabila berhasil maka xml wsdlakan dimunculkan browser.
  17. 17. Client1. Klik kanan package yang sudah dibuat (dalam tutorial ini sample.springws), “New” – “Class”.2. Saya beri nama SampleClient.java (code bisa dilihat di lampiran).
  18. 18. 3. Copy semua jar dari spring ws, <folder spring ws> - dist – modules.4. Copy ke folder lib dan jangan lupa tambahkan pada “Java Build Path” (caranya bisa dilihat pada poinsebelumnya).
  19. 19. 5. Klik kanan class tersebut, “Run As” – “Java Application”.6. Apabila berhasil, maka aplikasi java akan melakukan print pada console seperti gambar di bawah. Itu berarticlient sudah berhasil melakukan request service dan mendapat respon dari web service yang sudah dibuat.
  20. 20. Source CodeWeb.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5"><display-name>TutorialWebService</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><display-name>My Service</display-name><servlet><servlet-name>spring-ws</servlet-name><servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class><init-param><param-name>transformWsdlLocations</param-name><param-value>true</param-value></init-param></servlet><servlet-mapping><servlet-name>spring-ws</servlet-name><url-pattern>/*</url-pattern></servlet-mapping></web-app>
  21. 21. spring-ws-servlet.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:sws="http://www.springframework.org/schema/web-services"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/web-serviceshttp://www.springframework.org/schema/web-services/web-services-2.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"><description>This web application context contains Spring-WS beans. Thebeans definedin this context are automaticallydetected by Spring-WS,similar to the way Controllers are picked up in SpringWeb MVC.</description><context:component-scan base-package="sample.springws" /><sws:annotation-driven /><sws:dynamic-wsdl id="login" portTypeName="login"locationUri="loginservices"><sws:xsd location="/WEB-INF/login.xsd" /></sws:dynamic-wsdl></beans>
  22. 22. Login.xsd<?xml version="1.0" encoding="UTF-8"?><schema xmlns="http://www.w3.org/2001/XMLSchema"targetNamespace="http://www.springwssample.org/types"xmlns:tns="http://www.springwssample.org/types" elementFormDefault="qualified"><element name="loginRequest"><complexType><sequence><element name="username" type="string" /><element name="password" type="string" /></sequence></complexType></element><element name="loginResponse"><complexType><sequence><element name="message" type="string" /></sequence></complexType></element></schema>
  23. 23. OrderEndPoint.javapackage sample.springws;import java.io.IOException;import java.util.HashMap;import java.util.Map;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.springframework.ws.server.endpoint.annotation.Endpoint;import org.springframework.ws.server.endpoint.annotation.PayloadRoot;import org.springframework.ws.server.endpoint.annotation.RequestPayload;import org.springframework.ws.server.endpoint.annotation.ResponsePayload;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;@Endpointpublic class OrderEndpoint {private static final String NAMESPACE = "http://www.springwssample.org/types";@PayloadRoot(localPart = "loginRequest", namespace ="http://www.springwssample.org/types")@ResponsePayloadpublic Element loginServiceProcess(@RequestPayload Element request)throws ParserConfigurationException, IOException {// iterasi value xml request ke dalam mapMap<String, String> requestValue = new HashMap<>();NodeList nl = request.getChildNodes();for (int i=0;i < nl.getLength();i++) {requestValue.put(nl.item(i).getNodeName(), nl.item(i).getTextContent());}String message = "Failed";if (requestValue.get("username").equals("arif")) {message = "guntank";}// membuat response xmlDocument document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();Element response = document.createElementNS(NAMESPACE, "loginResponse");response.appendChild(addElementWithValue(document, "message", message));return response;}private Element addElementWithValue(Document document, String element,String value) {Element child = document.createElementNS(NAMESPACE, element);child.appendChild(document.createTextNode(value));return child;}}
  24. 24. SampleClient.javapackage sample.springws;import java.io.IOException;import java.io.StringReader;import java.io.StringWriter;import javax.xml.transform.stream.StreamResult;import javax.xml.transform.stream.StreamSource;import org.springframework.oxm.XmlMappingException;import org.springframework.ws.client.core.WebServiceTemplate;public class SampleClient {public static void main(String[] args) throws XmlMappingException,IOException {String SAMPLE_MESSAGE_1 = "<loginRequestxmlns="http://www.springwssample.org/types">"+ "<username>arif</username>"+ "<password>password</password>"+ "</loginRequest>";StreamSource source = new StreamSource(new StringReader(SAMPLE_MESSAGE_1));StringWriter strwr = new StringWriter();StreamResult result = new StreamResult(strwr);WebServiceTemplate webServiceTemplate = new WebServiceTemplate();webServiceTemplate.sendSourceAndReceiveToResult("http://localhost:8080/TutorialWebService/loginservices", source, result);System.out.println("response for first message : " + strwr);String SAMPLE_MESSAGE_2 = "<loginRequestxmlns="http://www.springwssample.org/types">"+ "<username>other</username>"+ "<password>password</password>"+ "</loginRequest>";source = new StreamSource(new StringReader(SAMPLE_MESSAGE_2));strwr = new StringWriter();result = new StreamResult(strwr);webServiceTemplate.sendSourceAndReceiveToResult("http://localhost:8080/TutorialWebService/loginservices", source, result);System.out.println("response for second message : " + strwr);}}

×