想了解Restlet Routing基本概念
Want to know Restlet Routing basic concepts
我正在使用 restlet 路由 API
http://localhost:8080/www.example.com/hello/ping
但是我不知道如何使用这种方法:
/{projectName}/{wallName}
我在
Restlet routing nightmare?
谁能告诉我
1.What是使用Restlet Routing的最佳实践?
2.How 在 java?
中实施 /{projectName}/{wallName}
3.How 从这个 API?
得到 projectName
的值
事实上,一个Restlet 应用程序中有几个部分。通常,此应用程序可通过按如下所述创建的 Restlet 组件访问:
独立模式(在应用程序服务器之外)
Component component = new Component();
component.setName("My component");
component.getServers().add(Protocol.HTTP, 8182);
MyApplication application = new MyApplication();
// To attach application on /www.example.com
component.getDefaultHost().attach("www.example.com", application);
// To attach application on /
component.getDefaultHost().attachDefault(application);
component.start();
容器模式(servlet 支持)。对于此用例,您可以使用扩展名 ext.servlet
。提供了一个前端 servlet,它可以自动包装一个组件。您只需指定应用程序实现的 class,如下所述:
<!-- Application class name -->
<context-param>
<param-name>org.restlet.application</param-name>
<param-value>
packageName.MyApplication
</param-value>
</context-param>
<!– Restlet adapter –>
<servlet>
<servlet-name>RestletServlet</servlet-name>
<servlet-class>
org.restlet.ext.servlet.ServerServlet
</servlet-class>
</servlet>
<!– Catch all requests –>
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/*</url-pattern>
<!-- or -->
<!-- url-pattern>/www.example.com/*</url-pattern -->
</servlet-mapping>
您现在可以实现 Restlet 应用程序了。对于此工具,class 扩展了 Application
。路由必须在其方法 createInboudRoot
中定义,如下所述:
public MyApplication extends Application {
@Override
public Restlet createInboundRoot() {
Router router = new Router(getContext());
router.attach("/{projectName}/{wallName}", MyServerResource.class);
return router;
}
}
如您所见,服务器资源已附加到路径 /{projectName}/{wallName}
。该服务器资源负责处理请求。下面描述了一个实施示例:
public class MyServerResource extends ServerResource {
@Get
public Representation handleGet() {
String projectName = getAttribute("projectName");
String wallName = getAttribute("wallName");
(...)
}
}
希望对你有帮助,
蒂埃里
我正在使用 restlet 路由 API http://localhost:8080/www.example.com/hello/ping 但是我不知道如何使用这种方法:
/{projectName}/{wallName}
我在 Restlet routing nightmare?
谁能告诉我
1.What是使用Restlet Routing的最佳实践?
2.How 在 java?
中实施/{projectName}/{wallName}
3.How 从这个 API?
得到projectName
的值
事实上,一个Restlet 应用程序中有几个部分。通常,此应用程序可通过按如下所述创建的 Restlet 组件访问:
独立模式(在应用程序服务器之外)
Component component = new Component(); component.setName("My component"); component.getServers().add(Protocol.HTTP, 8182); MyApplication application = new MyApplication(); // To attach application on /www.example.com component.getDefaultHost().attach("www.example.com", application); // To attach application on / component.getDefaultHost().attachDefault(application); component.start();
容器模式(servlet 支持)。对于此用例,您可以使用扩展名
ext.servlet
。提供了一个前端 servlet,它可以自动包装一个组件。您只需指定应用程序实现的 class,如下所述:<!-- Application class name --> <context-param> <param-name>org.restlet.application</param-name> <param-value> packageName.MyApplication </param-value> </context-param> <!– Restlet adapter –> <servlet> <servlet-name>RestletServlet</servlet-name> <servlet-class> org.restlet.ext.servlet.ServerServlet </servlet-class> </servlet> <!– Catch all requests –> <servlet-mapping> <servlet-name>RestletServlet</servlet-name> <url-pattern>/*</url-pattern> <!-- or --> <!-- url-pattern>/www.example.com/*</url-pattern --> </servlet-mapping>
您现在可以实现 Restlet 应用程序了。对于此工具,class 扩展了 Application
。路由必须在其方法 createInboudRoot
中定义,如下所述:
public MyApplication extends Application {
@Override
public Restlet createInboundRoot() {
Router router = new Router(getContext());
router.attach("/{projectName}/{wallName}", MyServerResource.class);
return router;
}
}
如您所见,服务器资源已附加到路径 /{projectName}/{wallName}
。该服务器资源负责处理请求。下面描述了一个实施示例:
public class MyServerResource extends ServerResource {
@Get
public Representation handleGet() {
String projectName = getAttribute("projectName");
String wallName = getAttribute("wallName");
(...)
}
}
希望对你有帮助, 蒂埃里