gpt4 book ai didi

java - ReSTLet 是否有 SelfAttachingServerResource?

转载 作者:太空宇宙 更新时间:2023-11-04 06:18:22 31 4
gpt4 key购买 nike

我正在尝试在 ReSTLet 之上创建一个框架,我的问题是,是否可以从 org.reSTLet.Application 代码外部“注入(inject)”ServerResource?

标准方法是在此处注入(inject)资源:

public class FrameworkApplication extends Application {
private static final String ROOT_URI = "/";
/**
* Creates a root Restlet that will receive all incoming calls.
*/
@Override
public Restlet createInboundRoot() {
Router router = new Router(getContext());
router.attach(ROOT_URI, RootServerResource.class);
return router;
}
}

但是,由于我正在构建一个框架,因此 FrameworkApplication 的使用是通过将其作为依赖项包含进来的:

<dependency>
<groupId>com.mycompany</groupId>
<artifactId>myframework</artifactId>
<version>0.0.1</version>
</dependency>

回到问题,我想知道是否可以在 ReSTLet 路由中添加 ServerResource,如下所示:

public class PluggableResource extends ServerResource {
@Get("json")
public String represent() {
// stuff
return resp;
}
}

在依赖注入(inject)的情况下,解决方案是,SelfInjectingServerResource现在我可以制作这样一个SelfAttachingServerResource吗?

最佳答案

我不知道你到底想做什么,但 ReSTLet 不支持自动发现服务器资源。您需要在 ReSTLet 类 Application 的专用实现中自行实现。 createInboundRoot 方法将负责扫描类路径以检测服务器资源。此外,您需要为服务器资源添加更多元数据(例如带有注释)来指定附件路径。

但是,JAX-RS 支持提供了此功能。它提供了一组注释,可以轻松识别服务器资源并提供元数据,例如附件路径、方法和方法的交换媒体类型。这是使用示例:http://restlet.com/technical-resources/restlet-framework/guide/2.3/extensions/jaxrs 。服务器资源的类需要手动注册,但您可以进一步注册。事实上,您可以扫描类路径来检测具有注释 Path 的类。有关实现此类功能的方法,请参阅此链接:Scanning Java annotations at runtime 。在这种情况下,将根据注释自动检测它们。有什么可以满足您的需求吗?

希望有帮助。蒂埃里

关于java - ReSTLet 是否有 SelfAttachingServerResource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27773301/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com