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