SOAP 실전예제 Internet Computing KUT Youn-Hee Han.

Slides:



Advertisements
Similar presentations
BEA WebLogic version Practice 장성봉
Advertisements

A1.1 Assignment 1 “Deploying a Simple Web Service” ITCS 4010/5010 Grid Computing, UNC-Charlotte B. Wilkinson, 2005.
Barry Wilkinson and Mark Holliday, 2004A1.1 Assignments Preliminaries Several computers are configured at WCU for the assignments. Here, terra.cs.wcu.edu.
A1.1 Assignment 1 “Deploying a Simple Web Service”
Enabling Grids for E-sciencE ISSGC 05 Web Service Tools NeSC Training Team.
EGEE is a project funded by the European Union under contract IST Technologies for Building Grids 15 th October
6/11/2015Page 1 Web Services-based Distributed System B. Ramamurthy.
J2ME RMI 1 Java 2 Platform, Micro Edition Implementation of J2ME RMI Application Farooq Sheikh.
Remote Method Invocation Chin-Chih Chang. Java Remote Object Invocation In Java, the object is serialized before being passed as a parameter to an RMI.
Lecture 10: Web Services. Outline Overview of Web Services Create a Web Service with Sun J2EE (JAX-RPC)
1 Web Services – Part II CS , Spring 2008/9.
Distributed Web Software  Presentation-based, e.g., dynamic web pages  Service-based – Web Services.
JAX-RPC The Java API for XML Remote Procedure Calls Notes from The J2EE Tutorial 1.4 From Sun Microsystems.
Java Remote Object Invocation (RMI) Overview of RMI Java RMI allowed programmer to execute remote function class using the same semantics as local functions.
Internet Software Development Remote Method Invocation Paul Krause.
Objectives:1. Investigate the Web application deployment descriptor 2. Install and deploy Tomcat and struts 3. Design and deploy a struts application Struts.
Distributed Web Software Presentation-based, e.g., dynamic web pages Service-based – Web Services.
Intro to Apache Axis Siva Jagadeesan
1 Java Server Programming zLecture 1 focuses on: yIntroduction to web services y Web Services using Axis y The bigger Picture: Introduction to J2EE y Java.
Web Services CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Java Servlets and JSP.
1 Lecture 22 George Koutsogiannakis Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
Java Servlets CS-422. Application Mapping Your servlet application will be mapped to a directory structure: –“myapp” maps to some directory C:/docs/apps/myapp.
COP 4991 Component Based Software Development Lecture #4 Java Web Services Onyeka Ezenwoye.
Java Server Pages A JSP page is a text-based document that contains two types of text: static template data, which can be expressed in any text-based format,
2012 내장형 시스템 설계  Full Color LED 디바이스 구성  Full Color LED 디바이스 드라이버  Full Color LED JNI 라이브러리 작성  Full Color LED 안드로이드 App 구현  JNI 라이브러리.
CS 584 Lecture 18 l Assignment » Glenda assignment extended to the Java RMI Deadline » No Java RMI Assignment l Test » Friday, Saturday, Monday.
15 - RMI. Java RMI Architecture Example Deployment RMI is a part of J2SE (standard edition), but is used by J2EE) A J2EE server is not nessesary for using.
Database Programming using JSP and MySQL Byung-Hyun Ha
CIS 644 Aug. 25, 1999 tour of Java. First … about the media lectures… we are experimenting with the media format please give feedback.
자바빈즈와 폼파라미터 처리 Internet Computing KUT Youn-Hee Han.
J2EE Overview Web Programming CSCI J2EE multi-tier architecture Servlet: Java class loaded into Web server JSP page: enhanced HTML page that is.
EGEE is a project funded by the European Union under contract IST WSDL JAX-RPC 17 th October
Enabling Grids for E-sciencE PPARC Summer School, May 2005 Web Service Tools Oliver Malham, National e-Science Centre, Edinburgh Based.
1 Creating Web Services from a existing tool Presented by Ashraf Memon Hands-on Ashraf Memon, Ghulam Memon.
20-Nov-15introServlets.ppt Intro to servlets. 20-Nov-15introServlets.ppt typical web page – source Hello Hello.
1 Creating Web Services Presented by Ashraf Memon Hands-on Ghulam Memon, Longjiang Ding.
Hanbit Media, Inc. 1 1 for early adapters… for next century of world-changing technology Ant 와 웹 어플리케이션 개발 허광남.
Java Remote Method Invocation (RMI) Overview of RMI Java RMI allowed programmer to execute remote function class using the same semantics as local functions.
1 Java Remote Method Invocation java.rmi.* java.rmi.registry.* java.rmi.server.*
Java Enterprise Edition Programming Page 1 of 9Configuring Servlets Web Application Context Name  In multiple web applications, a “context name” is used.
How to Write a Grid Service  The grid service will do basic mathematical operations. The math grid service is going to have the following methods:  add:
GT3 Tutorial Chapter 3 and Chapter 4 Lecture for Cluster and Grid Computing, CSCE 490/590 Fall 2004, University of Arkansas, Dr. Amy Apon
HTTP protocol Java Servlets. HTTP protocol Web system communicates with end-user via HTTP protocol HTTP protocol methods: GET, POST, HEAD, PUT, OPTIONS,
Creating Web Services Presented by Ashraf Memon Presented by Ashraf Memon.
 2003 Prentice Hall, Inc. All rights reserved Deploying a Web Application ( may include.war )
ClaRA web services V. Gyurjyan Clas12 Software Meeting
UMBC Distributed Computing with Objects RMI/Corba CMSC 432 Shon Vick.
12. The Experimenter 안광훈. University of Seoul, Seoul, Korea Setup panel 1.
1 Lecture 15 Remote Method Invocation Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology.
JAXB (Java Architecture for XML Binding) Internet Computing KUT ( Youn-Hee Han.
Morpheus Server 2.0 정기교육 Version 목 차 Morpheus Server 2.0 SpringFramework API 개발 Morpheus Admin 실 습.
Net-centric Computing Web Services. Lecture Outline  What is Web Service  Web Service Architecture  Creating and using Java Web Services  Apache Axis.
17 Copyright © 2004, Oracle. All rights reserved. Integrating J2EE Components.
INFSO-RI Enabling Grids for E-sciencE Web services tools David Fergusson.
J2ME Programming. Java2 Micro edition Introduction 년 5 월 26 일 CLDC, MIDP 라이브러리 Reference :
CS320 Web and Internet Programming Introduction to Java Servlets Chengyu Sun California State University, Los Angeles.
Chapter 5 Remote Procedure Call
WSDL JAX-RPC 17th October 2004
Web Services-JAX-RPC JAX-RPC enables a Web Service endpoint to be developed using either a Java Servlet or Enterprise JavaBeans (EJB) component model.
Java RMI (more) CS-328 Internet Programming.
Introduction to Web Services
Understanding Web Services based on dev. java
Introduction to Web Services
Distributed System using Web Services
Introduction to Java Servlets
CS 584 Lecture 18 Assignment Glenda assignment extended to the Java RMI Deadline No Java RMI Assignment Test Friday, Saturday, Monday.
What is Serialization? Serialization is the process of turning structured objects into a byte stream for transmission over a network or for writing to.
Distributed System using Web Services
Presentation transcript:

SOAP 실전예제 Internet Computing KUT Youn-Hee Han

2 웹 서비스 구현 절차 원격 인터페이스 및 Java Bean 작성 (BookStoreIF.java) 서비스 구현 클래스 작성 (BookStoreImpl.java) 인터페이스 정의 파일 작성 (config-interface.xml) 자바 파일 컴파일과 WSDL 및 mapping 파일 생성 배치 기술자 작성 (Deployment Descripter) web.xml, sun-web.xml, webservices.xml WAR 파일 생성 배포 및 WSDL 확인 초기 작업 – 디렉토리 설정

3 초기 작업 J2EE 설치 및 실행 확인 실행 및 종료방법  cmd 창에서 asadmin start-domain domain1  cmd 창에서 asadmin stop-domain domain1 실행확인   작업 디렉토리 생성 서비스 root 디렉토리  D:/SOAPExample/BookService/server 서비스 src 및 war 디렉토리  D:/SOAPExample/BookService/server/src  D:/SOAPExample/BookService/server/war 클라이언트 root 디렉토리  D:/SOAPExample/BookService/client 클라이언트 src 및 build 디렉토리  D:/SOAPExample/BookService/client/src  D:/SOAPExample/BookService/client/build

4 원격 인터페이스 및 Java Bean 작성 원격 인터페이스 package bookservice; import java.rmi.*; import java.util.*; public interface BookServiceIF extends Remote { public String registerBook1(String title, int price) throws RemoteException; public String registerBook2(String title[], int price[]) throws RemoteException; public HashMap getBooks() throws RemoteException; } D:/SOAPExample/BookService/server/src/BookServiceIF.java Client: 점원 Server: 책관리 웹서비스시스템 제목, 가격 registerBook1(String, int) 제목, 가격 registerBook2(String[], int[]) getBooks() Book 리스트 요청

5 서비스 구현 클래스 작성 서비스 구현 클래스 – 1/2 package bookservice; import java.util.*; public class BookServiceImpl implements BookServiceIF { private HashMap bookList; public BookServiceImpl() { bookList = new HashMap(); } public String registerBook1(String title, int price) { bookList.put(title, price); String result = " 입력완료 ! - [" + title + ", " + price + "]"; return result; } D:/SOAPExample/BookService/server/src/BookServiceImpl.java

6 서비스 구현 클래스 작성 서비스 구현 클래스 – 2/2 public String registerBook2(String titles[], int price[]) { String result = " 입력완료 ! - "; for(int i=0; i<titles.length; i++) { bookList.put(titles[i], price[i]); result += "[" + titles[i] + ", " + price[i] + "] "; } return result; } public HashMap getBooks() { return bookList; } D:/SOAPExample/BookService/server/src/BookServiceImpl.java

7 인터페이스 정의 파일 작성 인터페이스 정의 파일 <service name="BookService" targetNamespace=" typeNamespace=" packageName="bookservice"> D:/SOAPExample/BookService/server/config-interface.xml 스스로 서비스 이름을 정함 Java 패키지명 Java 패키지명을 포함한 원격 인터페이스 이름

8 자바 파일 컴파일과 WSDL 및 mapping 파일 생성 wsbuild.bat 생성 rem *************************************************************** rem This file should be executed in the Web Service Root Directory. rem rem The Web Service Root Directory should have the followings: rem 1) src directory which has the all *.java files: rem 2) config-interface.xml rem *************************************************************** mkdir war cd war mkdir build mkdir WEB-INF cd WEB-INF mkdir classes mkdir wsdl cd../.. javac -d war/WEB-INF/classes src/*.java wscompile -define -d war/WEB-INF/wsdl -mapping war/build/mapping.xml -classpath war/WEB-INF/classes config-interface.xml D:/SOAPExample/BookService/server/wsbuild.bat

9 자바 파일 컴파일과 WSDL 및 mapping 파일 생성 컴파일 및 WSDL/mapping 파일 생성 webuild.bat 수행 전 파일 배치 모습 cmd 창에서 wsbuild.bat 수행  D:/SOAPExample/BookService/server/ 에서 수행 wsbuild.bat 수행 이후 war 디렉토리 구성 모습 BookService server src BookServiceIF.java BookServiceImpl.java war config-interface.xml wsbuild.bat BookService server src BookServiceIF.java BookServiceImpl.java war build mapping.xml WEB-INF classes bookservice BookServiceIF.class BookServiceImpl.class wsdl BookService.wsdl config-interface.xml wsbuild.bat

10 배치 기술자 작성 web.xml 작성 war/WEB-INF 밑에 저장 10 <web-app xmlns=" xmlns:xsi=" version="2.4" xsi:schemaLocation=" BookService BookServiceImpl bookservice.BookServiceImpl BookServiceImpl /bookservice D:/SOAPExample/BookService/server/war/WEB-INF/web.xml 반드시 일치 Java 패키지명을 포함한 서비스 구현 클래스 이름 서비스 접근 URL 에 영향 스스로 이름을 정함

11 배치 기술자 작성 sun-web.xml 작성 war/WEB-INF 밑에 저장 11 <!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1 Servlet 2.4//EN" " bookws BookServiceImpl BookServiceIF bookservice D:/SOAPExample/BookService/server/war/WEB-INF/sun-web.xml web.xml 에 있는 내용과 반드시 일치 스스로 이름을 정함, 서비스 접근 URL 에 영향 web.xml 에 정의한 url-pattern 과 일치 원격 인터페이스 이름

12 배치 기술자 작성 webservices.xml 작성 war/WEB-INF 밑에 저장 12 <webservices xmlns=" xmlns:xsi=" version="1.1" xsi:schemaLocation=" BookService WEB-INF/wsdl/BookService.wsdl build/mapping.xml BookServiceIF wsdl-port_ns__:BookServiceIFPort bookservice.BookServiceIF BookServiceImpl D:/SOAPExample/BookService/server/war/WEB-INF/webservices.xml

13 WAR 파일 생성 cmd 창에서 war 디렉토리로 옮김 다음 명령 수행  jar –cvf BookService.war. 현재까지의 파일 배치 모습 BookService server src BookServiceIF.java BookServiceImpl.java war build mapping.xml WEB-INF classes bookservice BookServiceIF.class BookServiceImpl.class wsdl BookService.wsdl sun-web.xml web.xml webservices.xml BookService.war config-interface.xml wsbuild.bat

14 배포 및 WSDL 확인 배포 (deploy) 생성된 BookService.war 파일을 다음 디렉토리에 Copy  D:\Sun\SDK\domains\domain1\autodeploy 아래 그림처럼 BookService.war_deployed 라는 파일이 생성됨을 확인 WSDL 확인 브라우저에서 다음 URL 로 생성된 WSDL 확인 

15 웹 서비스 클라이언트 구현 절차 초기 작업 – 디렉토리 설정 config.xml 및 스텁 클래스 생성 (wscompile) 클라이언트 프로그램 작성 코드 컴파일 클라이언트 실행 Programmer 가 수행할 일 클라이언트 코드 작성 WSDL 문서로부터 스텁 클래스 생성 소스 코드 컴파일 실행 XML Web Services Server WSDL XML Web Services Stub 객체  클라이언트 root 디렉토리  D:/SOAPExample/BookService/client  클라이언트 src 및 build 디렉토리  D:/SOAPExample/BookService/client/src  D:/SOAPExample/BookService/client/build

16 스텁 클래스 생성 config.xml 생성 wscompile 을 이용한 스텁 생성 cmd 창에서 D:/SOAPExample/BookService/client 디렉토리로 이동 다음의 명령을 수행  wscompile –gen:client –d build config.xml build/bookclient 디렉토리에 생성된 스텁 확인 <wsdl location=" packageName="bookclient"/> D:/SOAPExample/BookService/client/config.xml

17 클라이언트 프로그램 작성 클라이언트 프로그램 작성 – 1/2 package bookclient; import javax.xml.rpc.*; import java.util.*; public class BookServiceClient { public static void main(String[] args) { try { BookService_Impl bookService = new BookService_Impl(); BookServiceIF bookIF = (BookServiceIF)bookService.getBookServiceIFPort(); String result1 = bookIF.registerBook1("XML 기초와 실무 ", 29000); System.out.println(result1); String titles[] = new String[] {"Java", "C++", "C#"}; int prices[] = new int[] {30000, 25000, 27000}; String result2 = bookIF.registerBook2(titles, prices); System.out.println(result2); D:/SOAPExample/BookService/client/src/BookServiceClient.java

18 클라이언트 프로그램 작성 클라이언트 프로그램 작성 – 2/2 System.out.println("- Current Book List -"); HashMap bookList = bookIF.getBooks(); Iterator t_titles = bookList.keySet().iterator(); while (t_titles.hasNext()) { String title = (String)t_titles.next(); System.out.println(title + " : " + bookList.get(title)); } } catch (Exception ex) { ex.printStackTrace(); } D:/SOAPExample/BookService/client/src/BookServiceClient.java

19 컴파일 및 실행 컴파일 cmd 창에서 D:/SOAPExample/BookService/client 로 이동 다음 명령어 수행  javac -d build –cp build;D:\Sun\SDK\lib\javaee.jar;d:\Sun\SDK\lib\appserv- ws.jar src\*.java 실행 D:/SOAPExample/BookService/client 에서 여전히 수행 다음 명령어 수행  java -cp build;d:\Sun\SDK\lib\j2ee.jar;d:\Sun\SDK\lib\appserv-ws.jar bookclient.BookServiceClient

20 JavaEE 5 이후의 웹서비스 개발 방법 새로운 폴더 생성 서비스 root 디렉토리  D:/SOAPExample/Hello2Service/server 서비스 src 및 war 디렉토리  D:/SOAPExample/Hello2Service/server/src 서버 소스 개발 package hello2service; import public class Hello2 { public String getHello(String name) { return "Hello " + name + "!"; } D:/SOAPExample/Hello2Service/server/src/Hello2.java

21 JavaEE 5 이후의 웹서비스 개발 방법 컴파일 D:/SOAPExample/Hello2Service/server 에서 다음 명령 수행  javac -d D:\Sun\SDK\domains\domain1\autodeploy –cp D:\Sun\SDK\lib\javaee.jar src\*.java 웹서비스 확인 브라우저에서 로 접속  설치시 입력한 ID, Passwd 입력 Web Services 목록 확인

22 JavaEE 5 이후의 웹서비스 개발 방법 WSDL 확인 (1) (2) (3) WSDL URL 확인

23 JavaEE 5 이후의 웹서비스 개발 방법 Book2Service 를 위한 새로운 폴더 생성 서비스 root 디렉토리  D:/SOAPExample/Book2Service/server 서비스 src 및 war 디렉토리  D:/SOAPExample/Book2Service/server/src 서버 소스 개발 package book2service; import java.util.*; import public class Book2Service { private List bookList; public Book2Service() { bookList = new LinkedList(); } // 이하 BookServiceImpl.java 와 동일 D:/SOAPExample/Book2Service/server/src/Book2Service.java

24 JavaEE 5 이후의 웹서비스 개발 방법 컴파일 D:/SOAPExample/Book2Service/server 에서 다음 명령 수행  javac -d D:\Sun\SDK\domains\domain1\autodeploy –cp D:\Sun\SDK\lib\javaee.jar src\*.java 웹서비스 확인 브라우저에서 로 접속  설치시 입력한 ID, Passwd 입력 Web Services 목록 확인

25 JavaEE 5 이후의 웹서비스 개발 방법 WSDL 확인 (1) (2) (3) WSDL URL 확인