2011-03-29 3 views
1

나는 restlet 2.0을 사용하여 나의 프로젝트를위한 서버를 코딩하고있다. 서버 (시작 포트 및 모든 물건) 시작 자바 클래스가 있습니다. 나는 내가 제공하고자하는 여러 가지 서비스의 URI를 매핑해야하는 시점에 갇혀있다. 서블릿에 URI 매핑 부분을 포함하려면 어떻게해야할까요? web.xml에서 내가해야 할 변경 사항은 무엇입니까? 나는 이것에 관한 문서를 거의 찾지 못했다. 도움이 되었습니까?restlet 2.0을 사용하여 서버 코딩하기

답변

1

실제로 라우팅 구성은 Restlet 애플리케이션 클래스에서 수행해야합니다. 구성된 자원은 다음 구성 Restlet 프레임 서버를 통해 도달 할 수

public class MyRestletApplication extends Application { 
    public Restlet createInboundRoot() { 
     Router router = new Router(getContext()); 
     router.attach("/path/{id}", MyServerResource.class); 
     (...) 
     return router; 
    } 
} 

아래에 설명 된대로 경로에 리소스를 연결합니다 createInboundRoot 메소드를 오버라이드 (override) 할 필요가있다. 예를 들어, 주소 http://localhost:8082/path/12 당신은 다음과 같이으로 Restlet 서버를 구현하는 경우 :

public static void main(String[] args) { 
    try { 
     Server server = new Server(Protocol.HTTP, 8182); 
     server.setNext(new MyRestletApplication()); 
     server.start(); 
     (...) 
    } catch(Exception ex) {} 
} 

으로 Restlet은 또한 org.restlet.ext.servlet 확장자를 가진 서블릿 어댑터를 제공합니다. 후자는 구성된 자원에 액세스하기 위해 ServerServlet 서블릿을 사용할 수 있습니다. 이 서블릿을 설정할 때 org.restlet.application 컨텍스트 매개 변수를 통해 사용할 애플리케이션 클래스를 지정해야합니다 (애플리케이션에 리소스 경로가 포함되어 있음). 후술하는 바와 같이 서블릿마다 서블릿으로 구성 될 수 있고/* 패턴에 매핑 될이 경우

<web-app> 
    <context-param> 
     <param-name>org.restlet.application</param-name> 
     <param-value>org.restlet.example.MyApplication</param-value> 
    </context-param> 

    <servlet> 
     <servlet-name>ServerServlet</servlet-name> 
     <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>ServerServlet</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

은으로 Restlet 구현하여 RESTful 한 애플리케이션은 서블릿 컨테이너를 통해 액세스된다. 이 경우 응용 프로그램을 Java EE 웹 응용 프로그램으로 패키징해야하며 주소는 http://localhost:8080/mywebapp/path/12입니다.

희망이 있으면 도움이 될 것입니다. 티에리

관련 문제