달력

12025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'분류 전체보기'에 해당되는 글 279건

  1. 2008.09.08 Eclipse Tip
  2. 2008.09.02 JUnit 관련 사이트
  3. 2008.09.02 Junit의 TestSuite
  4. 2008.09.02 Eclipse 관련 IBM developerworks
  5. 2008.09.01 Connection Pool - DBCP
  6. 2008.08.29 ZK - Ajax but no JavaScript
  7. 2008.08.29 javaScript OpenSource Framework - Prototype
  8. 2008.08.29 Eclipse PlugIn
  9. 2008.08.26 Java POI 예제소스
  10. 2008.08.20 SOAP 모델에 따른 인코딩방식

Eclipse Tip

eclipse 2008. 9. 8. 13:58

1. console log 파일저장
Run configurations > Common > Standard Input and Output 설정




'eclipse' 카테고리의 다른 글

Code Assist & Templates  (0) 2008.10.15
JUnit 관련 사이트  (0) 2008.09.02
Eclipse 관련 IBM developerworks  (0) 2008.09.02
Eclipse PlugIn  (0) 2008.08.29
이클립스 가니메데 - IBM developerworks  (0) 2008.07.28
Posted by marryjane
|

JUnit 관련 사이트

eclipse 2008. 9. 2. 16:38

JUnit과 다른 도구 함께 사용하기
제목 저자 발행일자 위치
Using JUnit With Eclipse IDE Alexander Prohorenko and Olexiy Prohorenko 02/04/2004 http://www.onjava.com/lpt/a/4524
Incremental development with Ant and JUnit Malcolm Davis 1 November 2000 http://www-106.ibm.com/developerworks/java/library/j-ant/

JUnit 사용 노하우나 기법 공개
제목 저자 발행일자 위치
Testing Java Interfaces with JUnit Matt Albrecht February 2003 http://www.ddj.com/documents/s=1679/ddj0302b/
Automating the build and test process Erik Hatcher 14 August 2001 http://www-106.ibm.com/developerworks/java/library/j-junitmail/
JUnit best practices Andy Schneider December 2000 http://www.javaworld.com/javaworld/jw-12-2000/jw-1221-junit_p.html


주요 사이트
순번 이름 위치
1 JUnit 홈페이지 http://junit.org
2 Kent Beck의 TDD 관련 철학 http://members.pingnet.ch/gamma/junit.htm Programmers Love Writing Tests

'eclipse' 카테고리의 다른 글

Code Assist & Templates  (0) 2008.10.15
Eclipse Tip  (0) 2008.09.08
Eclipse 관련 IBM developerworks  (0) 2008.09.02
Eclipse PlugIn  (0) 2008.08.29
이클립스 가니메데 - IBM developerworks  (0) 2008.07.28
Posted by marryjane
|

Junit의 TestSuite

java 2008. 9. 2. 14:19

http://shoutrock.egloos.com/4344090

프로젝트를 진행하다 보면 테스트 케이스가 수십개에서 수백개가 된다.
이러한 경우 이를 TestSuite가 grouping을 한다.
public static Test suite(){
    TestSuite suite = new TestSuite();
    suite.addTestSuite(Test1.class);
    suite.addTestSuite(Test2.class);    
    return suite;
}

public static vois main(String args[]){
    junit.textui.TestRunner.run(suite());
}

위와 같이 addTestSuite() 메소드를 이용해서 하나 이상의 단위 테스트 케이스를 하나로 grouping할 수 있도록 한다.
TestSuite를 작성하고, 이 TestSuite.addTestSuite() 메소드로 하나 이상의 TestSuite 또는 하나 이상의 TestCase를 상속한 테스트 클래스를 지정한다.
이를 실행하면 main()에서 JUnit의 TestRunner가 실행되고 이 때 지정한 테스트 케이스가 순서대로 실행된다.

출처 : Enterprise Java Beans 3.0  - 김병곤 저  - 가메출판사

'java' 카테고리의 다른 글

SOA 기술자료 특집 - IBM developerworks  (0) 2008.09.10
SOA와 웹서비스 입문 (한글) - IBM developerworks  (0) 2008.09.10
Connection Pool - DBCP  (0) 2008.09.01
ZK - Ajax but no JavaScript  (0) 2008.08.29
Java POI 예제소스  (0) 2008.08.26
Posted by marryjane
|

http://cafe.naver.com/2007jsp/451

Rich Ajax Platform, Part 1: 소개
RAP 개발 환경을 설정함으로써 Eclipse를 사용하여 Ajax-실행 웹 애플리케이션을 구현합니다. 그 특징을 배우고 예제를 통해 배워봅시다.
  중급   2007년 10월 30일 화  
 
Visual Studio용 Eclipse 사용자 가이드 (한글)
Eclipse는 Microsoft Visual Studio 개발자들에게는 새로운 것이고, Eclipse에서 시작하는 것은 혼란을 줄 수 있습니다. 플러그인 아키텍처, 워크스페이스 중심 프로젝트 구조, 자동 빌드 같은 새로운 개념들은 처음 보기에 낯설기만 합니다. 이 두 가지 환경의 차이점들을 익혀, Eclipse에 익숙해지도록 합시다.
  중급   2007년 10월 23일 화  
 
EMF 모델의 콘텐트를 검색하는 Eclipse 플러그인 구현하기 (한글)
EMF.Edit과 Common Navigator Framework (CNF)을 사용하여 트리 뷰어에 기반한 모델 네비게이션 플러그인을 만드는 방법을 배워봅시다. 사용자가 Eclipse Modeling Framework (EMF) 기반 모델의 콘텐트를 조작 및 검색할 수 있도록 하는 Eclipse 플러그인을 구현합니다. 플러그인 개발, EMF 편집 프레임웍을 통해 모델 콘텐트를 추출할 수 있는 구조 구현, CNF 기반 뷰 파트에 콘텐트 디스플레이 하는 방법을 단계별로 설명합니다.
  중급   2007년 10월 16일 화  
 
Eclipse Forms로 애플리케이션 활성화
Eclipse Forms는 Eclipse 애플리케이션의 사용자 경험을 향상시킬 수 있는 방법을 제공합니다. 임베디드 브라우저를 사용하지 않고 애플리케이션에 “웹과 비슷한” 형태를 제공합니다. 제품 관련 예제도 제공합니다.
  중급   2007년 10월 2일 화  
 
Eclipse Platform 시작하기 (한글)
Eclipse Platform의 기원과 아키텍처에 대해 알아봅시다. Eclipse의 오픈 소스 특징과 여러 프로그래밍 언어의 지원에 대해 간략히 설명하고, 간단한 프로그래밍 예제를 통해 자바 개발 환경을 설명합니다. 또한 플러그인 확장으로서 사용할 수 있는 소프트웨어 개발 툴에 대해서도 알아봅니다.
  중급   2007년 9월 4일 화  
 
Cypal Studio for GWT를 사용하여 Ajax 개발 단순화 하기 (한글)
Google Web Toolkit (GWT)를 사용하여 자바 개발자들은 자바 프로그래밍 언어로 풍부한 Asynchronous JavaScript + XML (Ajax) 애플리케이션을 작성할 수 있습니다. Eclipse IDE용으로 설계된 Cypal Studio for GWT는 GWT 구현 관리를 지원합니다. Cypal Studio for GWT에서는 새로운 모듈을 쉽게 생성할 수 있으며, 원격 프로시저 호출도 지원하고, 웹 애플리케이션을 쉽게 전개할 수 있도록 해줍니다.
  중급   2007년 8월 28일 화  
 
Eclipse에서 DocBook XML 구현하기 (한글)
DocBook XML은 거의 모든 아웃풋을 생성하기 위해 스타일시트를 작성하는데 사용되는 표준 XML 태그 라이브러리입니다. DocBook은 역사가 깊기 때문에, 다양한 유형의 문서를 생성하는 스타일시트가 여럿 존재하고 있습니다. DocBook XML과 Eclipse IDE를 함께 사용하여 여러 포맷으로 쉽게 배포할 수 있고 재사용 가능한 기술 문서를 생성하는 방법을 배워봅시다.
  중급   2007년 8월 28일 화  
 
Eclipse Europa 연구 (한글)
올해 21개 프로젝트의 동시 릴리스를 통해, Eclipse Europa 릴리스는 작년 10개의 프로젝트에서 뚜렷한 성장을 보였습니다. Europa 릴리스에 속한 각 프로젝트를 설명합니다.
  중급   2007년 8월 21일 화  
 
Eclipse 확장 구현하기 (한글)
플러그인을 사용하여 엔터프라이즈 표준을 따르는 코드를 추가할 수 있는 스니펫을 정의할 수 있습니다. Web Tools Project에 속해있는 Snippets 뷰와 비슷한 이 플러그인은 코드의 조각들을 에디터로 드래그&드롭 방식으로 가져올 수 있습니다. 우리는 객체 지향의 베스트 프랙티스를 따르기 때문에 이 스니펫은 데이터베이스(Apache Derby), 파일 시스템, 웹 서비스 같은 어떤 소스에서도 로딩될 수 있습니다.
  중급   2007년 8월 14일 화  
 
Eclipse RAVEN 방식으로 GUI 접근성 테스트 하기 (한글)
IBM Rule-based Accessibility Validation Environment (RAVEN)은 Eclipse 플러그인으로서, GUI 컴포넌트의 런타임 체크를 제공하여 자바의 접근성을 일관성 있게 사용할 수 있습니다. 이 글에서는 RAVEN 툴을 검토하고, Java Swing 애플리케이션의 유효성 검사에 대한 사용 예제를 제공합니다.
  중급   2007년 7월 31일 화  
 
Eclipse를 사용하여 OS X Java 개발 극대화 하기
Xcode 프로젝트를 Eclipse로 가져오고, 키 바인딩을 조정하고, Eclipse와 Mac OS X-bundled Concurrent Versions System (CVS)을 통합하는 방법을 설명합니다.
  중급   2007년 7월 31일 화  
 
Eclipse 마법사를 이용한 빠른 개발 (한글)
Eclipse 프레임웍과 통합 개발 환경(IDE)의 가장 큰 특징들 중 하나는 확장성입니다. 이 글에서, 새로운 파일을 추가하는 프로세스를 자동화 할 마법사를 구현하는 방법을 설명합니다. 파일의 내용은 사전 정의될 수 있기 때문에, 마법사는 일관성과 자동화를 통해서 더 나은 개발을 이룩할 수 있습니다.
  중급   2007년 7월 24일 화  
 
Eclipse 방식으로 단위 테스팅 하기 (한글)
소스 코드 베이스를 테스트 할 수 있는 적합한 테스트 슈트가 필요하십니까? jMock은 훌륭한 테스팅 프레임웍으로서 자격을 갖추었습니다. 하지만 모든 상황에jMock이 다 맞는 것은 아닙니다. 애플리케이션에서 단위 테스트를 지원하는 커스텀 mock 객체를 어렵게 만들 필요 없이, RMock이 jMock과 조화롭게 작동하도록 하여 긍정적인 결과를 얻을 수 있습니다.
  중급   2007년 7월 24일 화  
 
Graphical Editing Framework를 사용하여 Eclipse 기반 애플리케이션 만들기 (한글)
GEF를 사용하여 애플리케이션을 구현하는 초기 단계에 대해 배워봅시다. Eclipse에서 그래픽 에디터를 만드는 옵션에 대해서도 알아봅니다.
  중급   2007년 6월 19일 화  
 
Mylar를 이용한 태스크(task) 중심 프로그래밍, Part 2 (한글)
Mylar는 태스크를 Eclipse에 완벽하게 통합하고 그러한 태스크들을 하나의 작업으로서 자동 관리함으로써 생산성을 높입니다. 이번 시간에는, 프로젝트 리더 Mik Kersten이 Mylar의 콘텍스트 관리 기능에 대해 설명합니다. 이러한 기능들로 인해 멀티태스킹이 얼마나 수월해 지는지, Eclipse에서 대형 애플리케이션 작업을 할 때 정보 오버로드를 어떻게 줄이는지를 설명합니다.
  중급   2007년 6월 19일 화  
 
Eclipse 플랫폼에서의 디버깅 (한글)
소프트웨어 프로젝트 디버깅에 Eclipse 플랫폼에 내장된 디버깅 기능을 사용하는 방법을 배워봅시다. 디버깅은 프로그래머들에게는 피할 수 없는 문제입니다. 많은 수행 방법들이 있겠지만 궁극적으로 버그를 일으킨 코드를 찾는 것이 중요합니다. 예를 들어, 리눅스 애플리케이션에서 가장 일반적인 에러는 세그멘테이션 오류(segmentation fault)입니다. 프로그램이 할당되지 않은 메모리에 액세스를 시도할 때 세그멘테이션 위반으로 인해 종료됩니다. 이러한 유형의 에러를 픽스 하려면 그러한 작동을 일으킨 코드 라인을 찾아야 합니다. 문제의 코드 라인을 찾았다면, 에러가 발생한 정황, 제휴 값, 변수, 메소드에 대해 아는 것도 도움이 됩니다. 디버거를 사용하면 이러한 정보를 매우 간단하게 찾을 수 있습니다.
  중급   2007년 6월 5일 화  
 
RadRails와 Eclipse로 Ruby on Rails를 쉽게! (한글)
RadRails는 Ruby on Rails용 Eclipse 기반 IDE입니다. RadRails의 설치 방법, 애플리케이션 윈도우의 구조와 사용법, 애플리케이션 개발 단계를 설명합니다.
  중급   2007년 5월 8일 화  
 
Eclipse 추천 도서 리스트 (한글)
IBM의 Eclipse 개발자와 전문가들이 개발자들을 위해 엄선한 도서 리스트를 통해 Eclipse를 배워봅시다.
  초급   2007년 5월 2일 수  
 
Mylar를 이용한 태스크(task) 중심 프로그래밍, Part 1 (한글)
Mylar는 태스크들을 Eclipse로 완벽히 통합하고 그러한 태스크 정황을 작업으로서 자동 관리함으로써 생산성을 향상시킵니다. 두 편으로 구성된 Mylar 가이드 시리즈의 첫 번째 글에서는 프로젝트 리더 Mik Kersten이 Mylar의 태스크 관리 장치와 Bugzilla, Trac, JIRA 같은 리파지토리와의 통합에 대해 설명합니다.
  중급   2007년 5월 2일 수  
 
Google Web Toolkit, Apache Derby, Eclipse를 사용하여 Ajax 애플리케이션 구현하기, Part 4: 전개 (한글)
지난 세 편의 기술자료에서는 Google Web Toolkit (GWT)을 사용하여 단순하면서도 기능적인 웹 애플리케이션을 구현했습니다. 지금까지. 여러분은 GWT의 Hosted Mode를 사용하여 애플리케이션을 편집 및 디버깅하면서, 자바 전개 툴 내에서 웹 서버 환경을 시뮬레이트 했습니다. 안타깝게도, 웹 애플리케이션을 실행하기 위해 모든 사용자들이 Eclipse를 다운로드 해야 하는 상황은 비현실적입니다. 따라서, 이 글에서는, 자바 웹 애플리케이션 내에서 GWT 애플리케이션을 전개하는 방법을 설명하고, Apache Derby 데이터베이스를 사용하여 GWT를 구동하는 방법을 설명합니다.
  중급   2007년 4월 24일 화  
 
Google Web Toolkit, Apache Derby, Eclipse를 사용하여 Ajax 애플리케이션 구현하기, Part 3: 커뮤니케이션(Communication) (한글)
지난 시간 두 편의 기술자료에서는 Google Web Toolkit (GWT)과 Apache Derby 관계형 데이터베이스를 사용하여 웹 애플리케이션을 구현하는 방법에 대해 배웠습니다. Part 1에서는 GWT를 사용하여 Slicr라고 하는 피자 배달 시스템용 프론트엔드를 구현하는 방법을 설명했고, Part 2에서는 Derby를 사용하는 관계형 데이터베이스의 생성 데모와 데이터베이스 행을 자바 객체로 변환하는 방법을 설명했습니다. 이제 더욱 재미있는 부분으로 들어가고자 합니다. 세 번째 기술자료에서는 클라이언트와 서버가 서로 통신하게 하는 방법을 설명합니다. GWT 내에서 Remote Procedure Call (RPC)을 사용하여 자바 메소드 호출만큼 간단하게 서버에서 데이터를 가져옵니다.
  중급   2007년 4월 17일 화  
 
Google Web Toolkit, Apache Derby, Eclipse를 사용하여 Ajax 애플리케이션 구현하기, Part 2: 신뢰성 있는 백엔드(back end) (한글)
Google Web Toolkit, Apache Derby, Eclipse를 사용하여 Ajax 애플리케이션 구현하기 시리즈, 두 번째 글에서는 웹 애플리케이션용 Apache Derby 데이터베이스를 구현하는 방법과 이것을 사용하여 GWT를 구동하는 방법을 설명합니다. 본 시리즈 Part 1에서는, GWT를 소개했고, 이를 사용하여 웹 애플리케이션용 프론트엔드를 만드는 방법을 설명했습니다. 이번 시간에는, 데이터베이스로 백엔드를 설정하고, GWT가 사용할 수 있는 포맷으로 데이터를 변환하는 코드를 설정하는 방법을 설명합니다. 이 글을 끝내면, 환상적인 프론트엔드와 신뢰성 있는 백엔드가 서로 통신할 준비가 됩니다.
  중급   2007년 4월 10일 화  
 
Muse와 Eclipse TPTP WSDM 툴 작동시키기
Apache Muse와 Eclipse TPTP WSDM 런타임과 툴링의 설치 과정을 설명합니다. WSDM 엔드포인트를 구현할 때 빠르게 설치 및 실행할 수 있습니다.
  중급   2007년 3월 20일 화  
 
Eclipse Rich Client Platform Applications를 WebSphere Application Server V6 Service Integration Bus에 연결하기
Eclipse Rich Client Platform (RCP) 애플리케이션을 WebSphere Application Server V6.0.2 Service Integration Bus와 통신하도록 설정하는 방법을 배워봅시다.
  중급   2007년 3월 6일 화  
 
Eclipse User Assistance 이해하기
이클립스 기반 애플리케이션들의 가용성을 향상시킬 수 있는 방법을 모색해 봅시다.
  초급   2007년 3월 6일 화  
 
Google Web Toolkit, Apache Derby, Eclipse를 사용하여 Ajax 애플리케이션 구현하기, Part 1: 환상적인 프론트엔드 (한글)
Google Web Toolkit (GWT)은 동적 Java Script의 생성에 혁신을 가져왔습니다. GWT를 사용하면, 개발자들은 익숙한 자바 기술을 사용하여 사용자 인터페이스(UI)와 이벤트 모델을 디자인하고 대다수의 브라우저에 익숙한 코드를 만드는 일을 하게 됩니다. 이 글을 통해, GWT의 기초를 설명하고, GWT에서 Asynchronous JavaScript + XML (Ajax) 애플리케이션을 만드는 방법과, 자바 언어로 코드를 작성하는 방법을 설명합니다. 또한 온라인에서 피자를 판매하는 Slicr라고 하는 Web 2.0 비즈니스 샘플을 가지고, GWT 애플리케이션을 생성 및 실행하는 방법을 설명합니다.
  중급   2007년 2월 6일 화  
 
IBM Lotus Sametime Connect 플러그인을 위한 업데이트 사이트 구현하기 (한글)
Eclipse 업데이트 사이트에 새로운 플러그인이 추가되었거나, 플러그인이 업데이트 되면, IBM Lotus Sametime 사용자들에게 알릴 수 있는 방법은 무엇일까? 이 글에서는, Sametime 액션 바(action bar)에 추가할 수 있는 기능을 포함하는 업데이트 사이트를 쉽게 구현하는 방법을 설명합니다.
  중급   2007년 2월 6일 화  
 
JET를 사용하여 Eclipse에서 더 나은 코드 만들기 (한글)
베스트 프랙티스를 코딩 하는 템플릿을 만든다면 시간을 절약하고, 지루한 코딩을 줄일 수 있을 것입니다. Eclipse 프로젝트인, 코드 생성 프레임웍 JET를 소개합니다.
  초급   2007년 1월 16일 화  
 
Visual Studio C와 C++ 프로젝트를 Eclipse CDT로 마이그레이션 하기
Microsoft Visual Studio를 사용하여 개발된 Windows C/C++ 프로젝트를 사용할 때, 이클립스 마이그레이션에 대해 알아야 합니다. MSVC 프로젝트를 이클립스로 마이그레이션하는 절차를 설명합니다.
  중급   2006년 12월 21일 목  
 
Eclipse V3.2 Callisto
Eclipse V3.2를 사용하면, 자바와 웹 서비스 개발을 비롯하여 많은 태스크들을 전보다 더 빠르게 수행할 수 있습니다.
  중급   2006년 11월 9일 목  
 
Eclipse의 Jface 데이터 바인딩 이해하기, Part 1: 데이터 바인딩의 장단점
Java GUI 데이터 바인딩의 장단점을 배우고 프레임웍이 데이터 동기화를 자동화 하는 방법을 알아봅시다.
  중급   2006년 10월 9일 월  
 
WebSphere Application Server Community Edition Server용 Eclipse 플러그인 사용하기 (한글)
Eclipse를 사용하여 WAS CE에 J2EE 애플리케이션을 빠르게 전개 및 테스트하는 방법을 비롯하여, 환경 설정부터 애플리케이션 전개 및 디버깅 방법까지 설명합니다.
  초급   2006년 6월 28일 수  
 
Eclipse 태스크 리스트를 RSS 피드로 바꾸기
태스크 리스트를 모든 팀 멤버들이 등록할 수 있는 RSS 피드로 만들어 봅시다.
  초급   2006년 6월 20일 화  
 
SWT, Swing or AWT: 나에게 맞는 것 찾기 (한글)
Eclipse의 SWT, 자바의 Swing, Abstract Windows Toolkit (AWT) GUI 툴킷을 비교합니다. 각 툴킷의 기본적인 기능들과 장단점을 설명합니다.
  초급   2006년 4월 24일 월  
 
OSGi로 Eclipse 플러그인 문제 해결하기
OSGi와 Eclipse의 동적 확장 API를 사용하여 플러그인에 대한 확장을 작성하고, 이러한 플러그인에 대한 바이너리 의존성을 방지해 봅시다.
  초급   2006년 4월 18일 화  
 
Eclipse V3.1의 신 기능 연구(한글)
본 튜토리얼에서는 최근 발표된 Eclipse V3.1의 신 기능들을 설명한다. 이전 버전에서 V3.1로 업그레이드를 한다거나, 다른 통합 개발 환경에서 Eclipse로 전환할 것을 고려중이라면 이 글이 도움이 될 것이다. Java 2 Standard Edition V1.5활용할 수 있도록 코드를 개정하는 데에도 유용한 정보를 제공한다.
  초급   2006년 4월 14일 금  
 
Eclipse Test와 Performance Tools Platform 소개
Eclipse TPTP로 자바 애플리케이션을 프로파일링 하고, 메모리 누수를 감지하며, 퍼포먼스 병목현상을 규명할 수 있습니다.
  초급   2006년 2월 22일 수  
 
뷰 연결로 Eclipse 애플리케이션 향상하기 (한글)
풍부한 GUI에서 뷰는 다양한 방식으로 정보를 디스플레이 함으로서 사용자 경험을 향상시킨다. 따라서 UI 뷰는 다른 뷰들에 의존하고 인터랙팅 해야 한다. Eclipse는 UI 뷰들을 연결하고 비-UI 시나리오에 뷰 링크를 적용하는 방식을 제공하고 있다.
  초급   2005년 12월 21일 수  
 
Apache Derby용 Eclipse 기반 툴
Eclipse를 사용하여 Apache Derby 데이터베이스에 연결하여 검색할 수 있다.
  초급   2005년 10월 27일 목  
 
Eclipse용 Ruby Development Tools (RDT)
Eclipse용 Ruby Development Tools (RDT) 플러그인 사용법을 소개한다. 이 툴을 토대로 Eclipse도 최고의 Ruby 개발 환경이 될 수 있다. Eclipse의 풍부한 인프라를 사용고자 하는 Ruby 개발자와, Ruby에 관심이 있는 자바 개발자들에게 도움이 될 것이다.
  초급   2005년 10월 11일 화  
 
SWT와 JFace, Part 3: 소개
Eclipse를 사용하여 애플리케이션을 구현할 때 여러분이 배웠던 그 지식을 확장시켜 보자.
  초급   2005년 9월 27일 화  
 
The Eclipse Voice Tools Project
Eclipse Voice Tools Project는 보이스 산업에 관련한 기업과 개인들을 모아 표준 기반의, 오픈 소스 보이스 개발 툴을 만들기 위한 새로운 시도이다. 하지만 이 프로젝트 툴을 확장하거나 기여하고 싶을 때는 어떻게 하겠는가? 이 글에서 Voice Tool Project 환경을 설정 및 커스터마이징 하는 방법을 설명한다. 새로운 기능을 추가하는 과정도 설명한다.
  초급   2005년 8월 23일 화  
 
개발 환경으로서의 Eclipse
자바 개발 환경으로 Eclipse를 사용하는 것은 상당한 일이다. Eclipse Tomcat 플러그인을 사용하면 자바와 웹 개발 프로젝트를 조직화하고 통합하는데 더 좋다.
  초급   2004년 5월 20일 목  
 
Graphical Editing Framework으로 Eclipse 기반 애플리케이션 구현하기
Graphical Editing Framework (GEF)을 사용하여 Eclipse 기반 애플리케이션을 구현하는 초기 단계를 설명한다. GEF는 스테이트 다이어그램, 액티비티 다이어그램, 클래스 다이어그램, AWT용 GUI 빌더, Swing과 SWT, 프로세스 플로우 에디터 등 Eclipse용 다양한 애플리케이션을 구현하는데 사용되었다. Eclipse와 GEF 모두 오픈 소스이다. IBM WebSphere Studio Workbench 에도 포함되었다.
  초급   2003년 7월 29일 화  
 
Eclipse Platform 시작하기
Eclipse Platform을 소개한다. 기원과 아키텍쳐를 비롯하여 Eclipse의 오픈 소스적 특성과 다중 프로그래밍 언어 지원 등을 다룬다. 간단한 프로그램 예제를 사용하여 자바 개발 환경을 보여줄 것이다.
  초급   2002년 11월 26일 화  
 
LTC bulletin: 2001년 11월 28일
Linux 관련 기술들이 탄생하는 IBM Linux Technology Center 뉴스이다. 이번 주에는 Channel Bonding, EVMS, JFS 소식을 비롯하여 Eclipse의 배포 소식이 담겨져 있다. 툴 개발 통합을 용이하게 하도록 디자인된 Java 기반의 IDE 소식과 새로 시작하는 Mini-libc Builder도 다루었다. LTC의 문서 업데이트 소식도 있다 자세한 소식은 Linux Technology Center 를 통해 볼 수 있다.

'eclipse' 카테고리의 다른 글

Eclipse Tip  (0) 2008.09.08
JUnit 관련 사이트  (0) 2008.09.02
Eclipse PlugIn  (0) 2008.08.29
이클립스 가니메데 - IBM developerworks  (0) 2008.07.28
Eclipse에서 Subversion을 사용하는 방법 (한글) - IBM developerworks  (0) 2008.05.15
Posted by marryjane
|

Connection Pool - DBCP

java 2008. 9. 1. 20:33

http://commons.apache.org/dbcp/

commons-dbcp.jar
commons-pool.jar
commons-collections.jar : 1.2.2 에서는 필요치 않음.

BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(…);
ds.setUrl(…);
ds.setUserName(…);
ds.setPassword(…);

......
Connection conn = ds.getConnection();

......
conn.close();

'java' 카테고리의 다른 글

SOA와 웹서비스 입문 (한글) - IBM developerworks  (0) 2008.09.10
Junit의 TestSuite  (0) 2008.09.02
ZK - Ajax but no JavaScript  (0) 2008.08.29
Java POI 예제소스  (0) 2008.08.26
jdbc 1.0 ~ 3.0  (0) 2008.08.05
Posted by marryjane
|

ZK - Ajax but no JavaScript

java 2008. 8. 29. 13:22

http://www.zkoss.org/
http://www.potix.com/zkdemo/userguide/


ZK is the most proven Ajax + Mobile framework designed to maximize enterprises operation efficiency and minimize the development cost.


With groundbreaking Direct RIA architecture, ZK simplifies and speeds the creation, deployment and maintenance of rich Internet applications.


By programming user interfaces directly, developing Web application isas intuitive as programming desktop applications. By programmingdatabase and enterprise resource access directly, developers no longerhave to worry about exposure of business logic to the client andexposure of business data over the Internet .


'java' 카테고리의 다른 글

Junit의 TestSuite  (0) 2008.09.02
Connection Pool - DBCP  (0) 2008.09.01
Java POI 예제소스  (0) 2008.08.26
jdbc 1.0 ~ 3.0  (0) 2008.08.05
SI 프로젝트에서도 애자일 프로세스는 가능한가?  (0) 2008.07.28
Posted by marryjane
|

'javaScript' 카테고리의 다른 글

Dynamic Gradient Background  (0) 2009.03.06
Prototype 1.6.0.2 Cheat Sheet  (0) 2008.05.15
Posted by marryjane
|

Eclipse PlugIn

eclipse 2008. 8. 29. 11:51

http://andrei.gmxhome.de/eclipse.html

1. QuickREx eclipse regular expression plugin
update : http://www.bastian-bergerhoff.com/eclipse/features
정규표현식 개발 플러그인

2. velocity Web Editor
http://velocitywebedit.sourceforge.net

Velocity Web Edit is a Velocity and HTML aware editor with the following features:

  • Project 속성에서 Velocity Web Edit
  • Javascript Directory 를 지정하면 function 등을 자동 완성 해준다.
  • CSS  Directory를 지정하면 class 명 등을 자동 완성 해준다.
  • Reference를 등록하면 vm 파일에서 변수를 작성할 때 자동완성을 지정해준다.
    • Reference Name : vm에서 사용하는 변수명
    • Object Class : Reference 클래스의 FQCN
    • Item Class : Object Class 가 Conllection일 경우, Collection에 담기는 항목 클래스의 FQCN
This is an Eclipse plug-in that has been tested for Eclipse 3 and not with 2.1. That isn't to say it doesn't work, I just haven't tested it.

3. Properties Edit
http://sourceforge.jp/projects/propedit/
http://okjsp.pe.kr/seq/104351

4. AnyEdit
http://andrei.gmxhome.de/anyedit/index.html
update : http://andrei.gmxhome.de/eclipse/

사용자 삽입 이미지

5. Extended VS Presentation
http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-586.html

사용자 삽입 이미지


Posted by marryjane
|

Java POI 예제소스

java 2008. 8. 26. 11:13

/**
* 작성자 : litwave
* 작성일 : 2008. 08. 21
* 참고 Site :
*   http://poi.apache.org/hssf/quick-guide.html#Autofit
*   http://poi.apache.org/apidocs/index.html
*   http://blog.naver.com/btchae?Redirect=Log&logNo=80005156571
*/

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.Region;

public class ExcelFormatAdapter {
  private HSSFWorkbook wb;
  private HSSFSheet [] sheets;

  private final int ROW_POSITION = 1;
  private final int COL_POSITION = 1;

  public ExcelFormatAdapter(String[] sheetNames, String title, String author, String[] header, int [] length) {
    wb = new HSSFWorkbook();
    sheets = new HSSFSheet[sheetNames.length];
    for(int index=0; index < sheetNames.length; index++) {
      sheets[index] = wb.createSheet(sheetNames[index]);
      makeHeader(index, title, author, header, length);
    }
  }

  public void makeTailCell(int sheetIndex, int rowIndex, int valueCount, String currentDate) {
    int dataRowIndex = ROW_POSITION + 3 + rowIndex;
    HSSFRow row = sheets[sheetIndex].createRow(dataRowIndex);

    // 데이터 를 입력한다.
    for(int index=0; index < valueCount; index++) {
      if(index == valueCount -1) {
        createTailCell(row, COL_POSITION + index, "출력일자 : " + currentDate);
      } else {
        createTailCell(row, COL_POSITION + index, "");
      }
    }
  }


  /**
   * 마지막에 출력할 출력일자 셀을 설정한다.
   * @param row
   * @param column
   * @param value
   */
  private void createTailCell(HSSFRow row, int column, String value) {
    HSSFCell cell = row.createCell((short)column);
    HSSFRichTextString richValue = new HSSFRichTextString(value);
    cell.setCellValue(richValue);
    cell.setCellType(HSSFCell.CELL_TYPE_STRING);
    cell.setCellStyle(getTailStyle());
  }

  private HSSFCellStyle getTailStyle() {
    // font를 설정한다.
    HSSFFont font = wb.createFont();
    font.setFontHeightInPoints((short) 10);
    font.setFontName("돋움");

    HSSFCellStyle style = wb.createCellStyle();
    style.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
    style.setFont(font);
    style.setBorderTop(HSSFCellStyle.BORDER_THIN);

    return style;
  }


  public void makeDataCell(int sheetIndex, int rowIndex, String [] values) {
    int dataRowIndex = ROW_POSITION + 3 + rowIndex;
    HSSFRow row = sheets[sheetIndex].createRow(dataRowIndex);

    // 데이터 를 입력한다.
    for(int index=0; index < values.length; index++) {
      createDataCell(row, COL_POSITION + index, values[index]);
    }
  }

  /**
   * 데이터 셀을 설정한다.
   * @param row
   * @param column
   * @param value
   */
  private void createDataCell(HSSFRow row, int column, String value) {
    HSSFCell cell = row.createCell((short)column);
    HSSFRichTextString richValue = new HSSFRichTextString(value);
    cell.setCellValue(richValue);
//    cell.setCellStyle(getDataStyle());
  }

  private HSSFCellStyle getDataStyle() {
    // font를 설정한다.
    HSSFFont font = wb.createFont();
    font.setFontHeightInPoints((short) 10);
    font.setFontName("돋움");

    HSSFCellStyle style = wb.createCellStyle();
    style.setAlignment(HSSFCellStyle.ALIGN_LEFT);

    style.setFont(font);

    return style;
  }

  private void makeHeader(int sheetIndex, String title, String author, String[] header, int [] length) {
    HSSFRow row = sheets[sheetIndex].createRow(ROW_POSITION);
    // Title을 만들어 준다.
    createTitleCell(row, COL_POSITION, title);
    sheets[sheetIndex].addMergedRegion(new Region(ROW_POSITION, (short)COL_POSITION, ROW_POSITION, (short)header.length));

    // 작성자 셀을 설정한다.
    row = sheets[sheetIndex].createRow(ROW_POSITION + 1);
    createAuthorCell(row, COL_POSITION + header.length -1, "작성자 : " + author);

    sheets[sheetIndex].setColumnWidth((short)0, (short) ( ( 50 * 1 ) / ( (double) 1 / 20 )));

    // 데이터 Header를 입력한다.
    row = sheets[sheetIndex].createRow(ROW_POSITION + 2);
    for(int index=0; index < header.length; index++) {
      sheets[sheetIndex].setColumnWidth((short)(COL_POSITION + index), (short) ( ( 50 * length[index] ) / ( (double) 1 / 20 )));
      createHeaderCell(row, COL_POSITION + index, header[index]);
    }
  }

  /**
   * Header 셀을 설정한다.
   * @param row
   * @param column
   * @param value
   */
  private void createHeaderCell(HSSFRow row, int column, String value) {
    HSSFCell cell = row.createCell((short)column);
    HSSFRichTextString richValue = new HSSFRichTextString(value);
    cell.setCellValue(richValue);
    cell.setCellType(HSSFCell.CELL_TYPE_STRING);
    cell.setCellStyle(getHeaderStyle());
  }

  private HSSFCellStyle getHeaderStyle() {
    // font를 설정한다.
    HSSFFont font = wb.createFont();
    font.setFontHeightInPoints((short) 10);
    font.setFontName("돋움");
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    font.setColor(wb.getCustomPalette().findSimilarColor((byte)0x00, (byte)0x00, (byte)0x00).getIndex());


    HSSFCellStyle style = wb.createCellStyle();
    style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

    style.setFont(font);

    style.setFillForegroundColor(wb.getCustomPalette().findSimilarColor((byte)0x99, (byte)0xCC, (byte)0xFF).getIndex());
    style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    style.setBorderTop(HSSFCellStyle.BORDER_THIN);

    return style;
  }

  /**
   * 작성자 셀을 설정한다.
   * @param row
   * @param column
   * @param value
   */
  private void createAuthorCell(HSSFRow row, int column, String value) {
    HSSFCell cell = row.createCell((short)column);
    HSSFRichTextString richValue = new HSSFRichTextString(value);
    cell.setCellValue(richValue);
    cell.setCellType(HSSFCell.CELL_TYPE_STRING);
    cell.setCellStyle(getAuthorStyle());
  }

  private HSSFCellStyle getAuthorStyle() {
    // font를 설정한다.
    HSSFFont font = wb.createFont();
    font.setFontHeightInPoints((short) 10);
    font.setFontName("돋움");

    HSSFCellStyle style = wb.createCellStyle();
    style.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
    style.setFont(font);

    return style;
  }

  /**
   * 제목 셀을 설정한다.
   * @param row
   * @param column
   * @param value
   */
  private void createTitleCell(HSSFRow row, int column, String value) {
    HSSFCell cell = row.createCell((short)column);
    HSSFRichTextString richValue = new HSSFRichTextString(value);
    cell.setCellValue(richValue);
    cell.setCellType(HSSFCell.CELL_TYPE_STRING);
    cell.setCellStyle(getTitleStyle());
  }

  private HSSFCellStyle getTitleStyle() {
    // font를 설정한다.
    HSSFFont font = wb.createFont();
    font.setFontHeightInPoints((short) 14);
    font.setFontName("돋움");
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    font.setColor(wb.getCustomPalette().findSimilarColor((byte)0xFF, (byte)0xFF, (byte)0xFF).getIndex());


    HSSFCellStyle style = wb.createCellStyle();
    style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

    style.setFont(font);

    style.setFillForegroundColor(wb.getCustomPalette().findSimilarColor((byte)0x00, (byte)0x80, (byte)0x80).getIndex());
    style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

    return style;
  }

  public void write(OutputStream stream) throws IOException {
    wb.write(stream);
  }

  public static void main(String [] args) {
    String [] sheetNames = new String [] { "첫번째 시트" };
    String title = "타이틀";
    String author = "litwave";
    String createDate = "2008. 08. 21(목)";
    String [] header = new String [] { "제목 1", "제목2", "제목3" };
    int [] length = new int [] { 10, 15, 8 };

    ExcelFormatAdapter excelAdapter = new ExcelFormatAdapter(sheetNames, title, author, header, length);
    int index=0;
    for(; index < 10; index++) {
      excelAdapter.makeDataCell(0, index, new String [] { "data_" + index, "데이 터" + index, "테스트 " + index });
    }

    excelAdapter.makeTailCell(0, index, header.length, createDate);

    File f = new File("D:/Z02_temp/imsi/test.xls");
    FileOutputStream fos = null;
    try {
      fos = new FileOutputStream(f);
      excelAdapter.write(fos);

    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if(fos != null) try { fos.close(); } catch (IOException e) { }
    }
  }
}

'java' 카테고리의 다른 글

Connection Pool - DBCP  (0) 2008.09.01
ZK - Ajax but no JavaScript  (0) 2008.08.29
jdbc 1.0 ~ 3.0  (0) 2008.08.05
SI 프로젝트에서도 애자일 프로세스는 가능한가?  (0) 2008.07.28
HTTPClient 3.0  (0) 2008.07.25
Posted by marryjane
|

http://blog.naver.com/rks6230?Redirect=Log&logNo=40045208405

 1. SOAP RPC 호출 모델
   1-1. RPC/Encoded 인코딩 방식
   1-2. RPC/Literal 인코딩 방식

 2. SOAP 문서 교환 모델
   2-1. Document/Encoded 인코딩 방식
   2-2. Document/Literal 인코딩 방식
   2-3. Document/Literal wrapped 인코딩 방식



 RPC 호출 모델 & 문서 교환 모델로 나뉘며 각각 literal과 encode 방식으로 구분된다.
사용자 삽입 이미지

▪ 두 가지 방식의 큰 차이점은 SOAP 메시지 내에 Body 의 기술 방식.

  ① 문서 교환 모델 : 상호간에 미리 정의된 XML 문서가 SOAP Body로 삽입
  ② RPC 호출 모델 : SOAP 메시지 내에 메서드명, 파라미터들 구조가 SOAP 엔진에 자동 삽입.


1. SOAP RPC 호출 모델

: SOAP Body 의 내용을 RPC 호출을 위한 특정 형식에 맞게 메시지를 인코딩하여 처리하는 모델.

▪ 특징
  ① tightly-coupled 요청/응답 기반 동기식 통신 지원 : 클라이언트 요청 후 서버의 응답 받을 때까지 다른 오퍼레이션 수행 X
  ② SOAP 엔진이 모두 처리(인코딩, 디코딩, 데이터 타입)하고, 단순히 파라미터를 통해 원격 객체를 호출만 하면 된다.

  ③ SOAP 통신을 위한 전송 프로토콜로 HTTP 를 사용할 경우, RPC 호출모델이 적합하다.
      이 모델의 전형적인 SOAP 인코딩 타입은 'RPC/Encoded'이다.
  ④ 직렬화된 데이터 형식이 XML에 의해 표현되는 것, SOAP 인코딩 규칙이 적용된다는 것을 제외하면
      기존의 CORBA or RMI 기반 통신과 유사하다


1-1. RPC/Encoded 인코딩 방식

▪ 장점 : WSDL 단순
           메서드 명이 메시지에 나타나므로, 수신자가 이 메시지를 이용해 구현하기 쉽다.
▪ 단점 : SOAP 메시지에 유형 인코딩 정보 (xsi:type="xsd:int") 가 표기되어 성능에 영향 미치는 오버헤드들이 존재.
           WSLD 규격을 준수해도 WS-I 규격을 준수하지 않으므로 WS-I 준수하는 웹서비스와의 연동에 어려움.

▪ 예제

public void myMethod (int x, float y);


WSDL

예제

<message name="myMethodRequest">

<part name="x" type="xsd:int"/>

<part name="y" type="xsd:float"/>

</message>

<message name="empty"/>

 
<portType name="PT">

<operation name="myMethod">

<input message="myMethodRequest"/>

<output message="empty"/>

</operation>

</portType>

<binding .../>


SOAP

메시지

예제

<soap:envelope>

<soap:body>

<myMethod>

<x xsi:type="xsd:int">5</x>

<y xsi:type="xsd:float">5.0</y>

</myMethod>

</soap:body>

</soap:envelope>




1-2. RPC/Literal 인코딩 방식

: RPC 메서드를 사용하여 호출하지만, 데이터 마샬링에는 사용자 정의 XML을 사용한다.
  즉, SOAP Body 섹션을 서버, 클라이언트 간의 협의에 의해 구성한다.

▪ 장점 : WSDL 단순
           메서드 명이 메시지에 나타나므로, 수신자가 이 메시지를 이용해 구현하기 쉽다.
           SOAP 메시지 상의 파라미터 타입 인코딩 정보가 제거되어 오버헤드 감소.
           WS-I 규격을 준수하므로 WS-I 지원 웹 서비스들과 연동에 문제 없다.
▪ 단점 : SOAP 메시지 상에 서비스에 대한 파라미터 타입 정보들이 XML 스키마에 정의된 것을 포함하므로,
           서비스 구현시 각 파라미터들에 대한 타입 정보를 알아내는 부수 작업이 필요.

▪ 예제

public void myMethod (int x, float y);

 

WSDL

예제

<message name="myMethodRequest">

<part name="x" type="xsd:int"/>

<part name="y" type="xsd:float"/>

</message>

<message name="empty"/>

 

<portType name="PT">

<operation name="myMethod">

<input message="myMethodRequest"/>

<output message="empty"/>

</operation>

</portType>

<binding .../>

 

SOAP

메시지

예제

<soap:envelope>

<soap:body>

<myMethod>

<x>5</x>

<y>5.0</y>

</myMethod>

</soap:body>

</soap:envelope>





2. SOAP 문서 교환 모델

▪ 특징
  ① 문서 중심의 비동기식 통신 지원 (loosely coupled)
      : 클라이언트가 SOAP 요청 메시지에 대한 리턴값을 요구하지 않을 수도 있다.
  ② 웹 서비스 개발자가 모든 것을 핸들링. SOAP Body의 마샬링/언마샬링 기능 직접 구현해야 한다.
  ③ 일련의 파라미터를 보내는 대신 전체 문서를 보낸다.
      서비스 제공자는 문서를 전달받아 처리한 후, 메시지의 반환 유무 결정.
  ④ SOAP 요청/응답 메시지 내의 SOAP Body 의 내용을 사전에 정의된 하나의 XML 문서로 구성.
  ⑤ Document/Literal 방식은 서비스 메서드의 입력 파라미터를 하나만 허용한다.
      So, 입력 파라미터가 2개 이상일 경우 파라미터를 모두 포함하는 형식(ex. 자바빈)으로 만들어 1개의 파라미터로 바꿔야 한다.

SOAP 메시지는 Header Block에 InventoryNotice와 Body product를 포함하는데,
  둘 다 SOAP에서 정의하는 것이 아니라, 응용 프로그램 안에서 정의된다.
  헤더 : 수신자 노드에서 필요로 하는 정보를 포함.
  바디 : 전달되어야 하는 실제 메시지 포함.

▪ SOAP 문서 교환 모델의 SOAP 메시지

<env:Envelope xmlns:env=http://www.w3.org/2001/12/soap-envelope>

<env:Header>

<n:InventoryNotice xmlns:n=http://jws.wiley.com/Inventory>

<n:productcode>J05879234798</n:productcode>

</n:InventoryNotice>

</env:Header>

<env:Body>

<m:product xmlns:m=http://jws.wiley.com/product>

<m:name>Developing Java Web Services</m:name>

<m:quantity>25000</m:quantity>

<m:date>2006-07-05</m:date>

</m:product>

</env:Body>

</env:Envelope>



2-1. Document/Encoded 인코딩 방식

: 현재 이용되지 않는 방식.



2-2. Document/Literal 인코딩 방식

▪ 장점 : SOAP 메시지 상에 유형 인코딩 정보가 기술되지 않으므로 오버헤드 없다.
           XML 유효성 검증기로 메시지를 최종 확인. SOAP Body 내의 모든 것이 스키마에서 정의된다.
           Document/Literal 은 WS-I 순응이지만 제한이 없다.
▪ 단점 : WSDL 복잡. 읽을 수 없다.
           SOAP 메시지의 연산 이름이 소실된다.
           WS-I는 SOAP 메시지에서 SOAP Body의 단 하나의 자식만 허용.
           다음 예제에서는 SOAP Body의 두 개의 자식이 있다.

▪ 예제

public void myMethod (int x, float y);

 

WSDL

예제

<types>

    <schema>

        <element name="xElement type="xsd:int"/>

<element name="yElement type="xsd:float"/>

</schema>

</types>

 

<message name="myMethodRequest">

<part name="x" element="xElement"/>

<part name="y" element ="yElement "/>

</message>

<message name="empty"/>

 

<portType name="PT">

<operation name="myMethod">

<input message="myMethodRequest"/>

<output message="empty"/>

</operation>

</portType>

<binding .../>

 

SOAP

메시지

예제

<soap:envelope>

<soap:body>

<xElement>5</xElement>

<yElement>5.0</yElement>

</soap:body>

</soap:envelope>




2-3. Document/Literal wrapped 인코딩 방식

▪ 장점 : SOAP 메시지 상에 파라미터 타입 인코딩 정보가 기술되지 않는다.
           SOAP Body에 나타나는 모든 것이 XML 스키마에서 정의된다.
           메서드 명이 메시지에 나타나므로, 수신자가 이 메시지를 이용해 구현하기 쉽다.
           Document/Literal 은 WS-I 규격을 준수하고,
           Document/Literal wrapped 방식은 SOAP Body 가 단 하나의 자식을 가져야 하는 WS-I 규격을 준수한다.
▪ 단점 : WSDL 복잡.

▪ 예제

public void myMethod (int x, float y);

 

WSDL

예제

<types>

    <schema>

        <element name="myMethod">

            <complexType>

                <sequence>

        <element name="x type="xsd:int"/>

<element name="y type="xsd:float"/>

</sequence>

            </complexType>

         </element>

<element name="myMethodResponse">

            <complexType/>

         </element>

</schema>

</types>

 

<message name="myMethodRequest">

<part name="parameters" element="myMethod"/>

</message>

<message name="empty">

<part name="parameters" element="myMethodResponse"/>

</message>

 

<portType name="PT">

<operation name="myMethod">

<input message="myMethodRequest"/>

<output message="empty"/>

</operation>

</portType>

<binding .../>

 

SOAP

메시지

예제

<soap:envelope>

<soap:body>

    <myMethod>

<x>5</x>

<y>5.0</y>

</myMethod>

</soap:body>

</soap:envelope>


'Soap & WebService' 카테고리의 다른 글

WS-* 스팩  (0) 2009.04.26
XML Schema  (0) 2008.11.19
SOAP Version 1.2 스펙 한글판  (0) 2008.08.20
SOAP message  (0) 2008.08.20
Webservice, Soap, wsdl  (0) 2008.08.20
Posted by marryjane
|