12.07.2015 Views

Anyframe CXF Plugin

Anyframe CXF Plugin

Anyframe CXF Plugin

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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

RESTful Services}this.title = title;중략...다음은 Movie Service의 인터페이스 클래스에서 목록조회 시 리턴 값으로 사용하는 Movies.java 의일부이다. Movies 클래스 정의 시 작성한 @XmlRootElement(name = "Movies") Annotation 설정에 유의하도록 한다. JAXB를 이용하여 서비스 결과 XML을 JavaBeans 객체로 변환 시 이 Annotation 정보를 이용한다. 특히 목록 조회 결과 시 사용되는 리턴 값은 내부 멤버 변수로 Collection 객체를 정의하여 새로운 Movies 객체를 작성함에 유의하도록 한다.@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name = "", propOrder = {"movies" })@XmlRootElement(name = "getMoviesResponse")public class GetMoviesResponse {@XmlElement(name = "return", required = true)private Collection movies;public Collection getMovie() {return movies;}public void setMovie(Collection movies) {this.movies = movies;}중략...다음은 Movie Service의 인터페이스 클래스에서Movie 조회 메소드인 getMovie()의 리턴 타입이 인 경우, 추가 작성해야 하는 GetMovieResponse.java 의 일부이다. 현재 Wrapped mode로 서버를 설정하여 사용하고 있으므로 메소드 명으로 wrapping된 XML 결과 값이 리턴된다.@XmlRootElement(name = "getMovieResponse") Annotation 설정에 유의하도록 한다. JAXB를 이용하여 서비스 결과 XML을 JavaBeans 객체로 변환 시 이 Annotation 정보를 이용한다.@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name = "", propOrder = {"movie" })@XmlRootElement(name = "getMovieResponse")public class GetMovieResponse {@XmlElement(name = "return", required = true)private Movie movie = null;public Movie getMovie() {return movie;}public void setMovie(Movie movie) {this.movie = movie;}중략...다음은 JAXB를 사용하기 위해서 필요한 jaxb.index 파일이다. Movie와 GetMoviesResponse 그리고GetMovieResponse 클래스를 정의해 놓는다.MovieGetMoviesResponseGetMovieResponse다음은 XML Namespace가 정의된 XML 데이터를 JavaBeans 객체로 변경하기 위해서 필요한 packageinfo.java파일이다. HTTP Binding(Naming Convention) 방식을 이용하여 RESTful Service를 구현하면 서비스의 리턴 XML 데이터는 서비스 인터페이스 클래스의 패키지명의 반대 형태로 Namespace가 정의되어 온다. (ex."http://namingconvention.httpbinding.restful.movie.sample.anyframe/") 이Namespace를 맞춰서 JavaBeans 객체를 생성하려고 하면 에러가 나게 되므로, 현재 Movie 클래스의 패키지명으로 Movie Service의 인터페이스 클래스 선언부에 @WebService(targetNamespace64

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

Saved successfully!

Ooh no, something went wrong!