我正在使用 Apache Karaf 和蓝图,我很难将这些技术与 Restlet 集成。我找到了使用服务组件运行时的org.restlet.ext.osgi
库和本教程OSGi at REST。
所以ServerResource示例是
public SampleResource extends ServerResource {
@Get
public Representation represent(Representation representation){
/* Do something crazy here */
}
}
将其注册到必须附加到路由器或应用程序的资源
public class SampleRouter extends Router {
public SampleRouter {
super();
attach("/sampleroute", SampleResource.class);
}
}
如果我使用蓝图 注入依赖项,那么使用SampleResource.class
附加它是非常麻烦的
public SampleResource extends ServerResource {
private InjectedDependency dependency; /* Injected using Blueprint */
@Get
public Representation represent(Representation representation){
/* Do something crazy here */
}
}
即使我已注入蓝图服务,还是有其他选择,我如何附加ServerResource
?
答案 0 :(得分:0)
使用Apache camel定义Restlet集成。事实上,他们的新REST DSL易于使用。 看到 http://camel.apache.org/rest-dsl.html http://camel.apache.org/restlet.html
Camel定义了蓝图架构,因此您可以获得工具支持并帮助您完成蓝图定义。如果你想在Karaf中使用Restlet来使用蓝图,那就是我要去的方式。
编辑: 以下是Camel Blueprint中Restlet的准系统示例:
<camelContext>
<route id="RS_RestletDemo">
<from uri="restlet:http://localhost:7000/demo/{id}" />
<transform>
<simple>Request type : ${header.CamelHttpMethod} and ID : ${header.id}</simple>
</transform>
</route>
</camelContext>
有关更多信息,请查看Camel文档。我认为转换你的代码或根据你的要求创建一些东西是一个很好的练习,你可以去学习它。