12.07.2015 Views

Anyframe CXF Plugin

Anyframe CXF Plugin

Anyframe CXF Plugin

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

RESTful Services를 이용한다. 특히 목록 조회 결과 시 사용되는 리턴 값은 내부 멤버 변수로 Collection 객체를 정의하여 새로운 Movies 객체를 작성함에 유의하도록 한다.import javax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name = "Movies")public class Movies {private Collection movies;public Collection getMovie() {return movies;}public void setMovie(Collection movies) {this.movies = movies;}중략...다음은 JAXB를 사용하기 위해서 필요한 jaxb.index 파일이다. Movie와 Movies 클래스를 정의해 놓는다.MovieMovies다음은 XML Namespace가 정의된 XML 데이터를 JavaBeans 객체로 변경하기 위해서 필요한 package-info.java 파일이다. JRA를 이용하여 RESTful Service를 구현하면 서비스의 리턴 XML 데이터는 서비스 인터페이스 클래스의 패키지명의 반대 형태로 Namespace가 정의되어 온다. (ex."http://jra.httpbinding.restful.movie.sample.anyframe/") 이 Namespace를 맞춰서 JavaBeans 객체를 생성하려고 하면 에러가 나게 되므로, 현재 Movie와 Movies 클래스의 패키지명으로 Movie Service의 인터페이스 클래스 선언부에 @WebService(targetNamespace= "http://anyframe.sample.movie.restful.httpbinding.jra")와 같이 작성해주도록 한다. 그리고 anyframe.sample.movie.restful.httpbinding.jra 패키지 하위에 package-info.java 파일을 작성해놓음으로써 클라이언트 사이드에서 JAXB를 통해 바이딩할 때 Namespace "http://anyframe.sample.movie.restful.httpbinding.jra"를 인식시키도록 한다.@javax.xml.bind.annotation.XmlSchema(namespace = "http://anyframe.sample.movie.restful.httpbinding.jra",elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)package anyframe.sample.movie.restful.httpbinding.jra;• Test Case다음은 HttpClient 클래스를 사용하여 RESTful Web Services로 노출된 Movie Service에 접근하는 클라이언트 코드 작성 예이다. 테스트 메소드 내에서 Get/Post/Put/Delete Method 중 어느 것을 사용할 것인지 정하여 접근하고자 하는 Web Services 주소와 함께 정의하고, HttpClient 객체를 생성하여위에서 정의한 Method를 실행시킨다. 이때 클라이언트는 서버의 Movie Service 인터페이스 클래스를 이용하지 않고 URL 정보를 이용하여 접근한다. RESTful WebService 실행 결과로 받은 XML 데이터를 JavaBeans 객체로 변경하여 메소드 동작이 올바른지 테스트해본다./*** [Flow #-1] Positive Case : Get method로 Movie Service의 전체 목록 조회 기능을* 호출하여 XML data를 리턴받고* JAXB를 사용하여 Movies 객체로 전환하여 사용한다.* @Get, @HttpResource, @WebResult annotation을 이용하여* findMovieListAll method를 RESTful한 Web Service로 노출하여 Client가* 호출가능하도록 한다.* (ex. @Get* @HttpResource(location = "/movies")* @WebResult(name = "Movies")57

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!