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}}}중략...7.3.HTTP Binding(Naming Convention) 활용한 RESTful 서비스 구현표준 방식이 아닌 방법으로 가장 쉽고 용이한 방식으로 Naming Convention 기반의 매핑 방식을 이용하여 RESTful 서비스를 작성할 수 있게 한다.Naming Convention 기반 매핑의 특징 을 살펴보면 다음과 같다.• Web Service로 노출시킬 서비스 인터페이스 클래스의 각 method를 특정 Naming Convention에 맞춰서 정의하면 부가 Annotation이나 Configuration 없이 손쉽게 RESTful Web Service를 구현할 수 있다.• 기본 CRUD에 대한 메소드 Naming Convention이 존재한다.(아래 표 참조)메소드 Naming ConventionCollection getMovies()Movie getMovie(movieId)void addMovie(Movie movie) *createXXX도 동일함void updateMovie(String movieId, Movie movie)void deleteMovie(String movieId) *removeXXX도 동일함매핑 결과HTTP GET /moviesHTTP GET /movies/{movieId}HTTP POST /moviesHTTP PUT /movies/{movieId}HTTP DELETE /movies/{movieId}다음은 HTTP Binding(Naming Convention)를 활용하여 RESTful 서비스 구현 시 Server와 Client 단에서어떻게 사용해야 하는지에 대한 사용법이다.• Server Configuration• Client Configuration7.3.1.Server ConfigurationMovie Service를 JAX-WS Frontend를 사용하여 RESTful Web Services로 노출시켜보도록 한다.7.3.1.1.Samples다음은 Movie Service의 인터페이스 클래스 정의에 대한 예제이다. 서버 구동을 위해서 <strong>Anyframe</strong>에서제공하는 JaxWsServer 클래스를 이용하고 있다.• Interface Class다음은 Movie Service의 인터페이스 클래스를 작성한 MovieService.java 의 일부이다. Annotation 설정에 유의하도록 한다. 특히, XML 데이터를 서버에 전달하여 객체로 변경시킬 때 JAXB를 사용하므로 addMovie와 updateMovie 메소드에 @WebParam Annotation 속성 name 값을 Movie로 설정해놓아야 하는 것을 기억한다.@WebService(targetNamespace = "http://anyframe.sample.movie.restful.httpbinding.namingconvention")public interface MovieService {public Collection getMovies() throws Exception;public Movie getMovie(String movieId) throws Exception;62

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

Saved successfully!

Ooh no, something went wrong!