蓝图中的Restlet服务器资源(Apache Karaf)

时间:2015-11-24 09:13:33

标签: restlet apache-karaf blueprint-osgi

我正在使用 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

1 个答案:

答案 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文档。我认为转换你的代码或根据你的要求创建一些东西是一个很好的练习,你可以去学习它。