首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Restlet Protocol.FILE使用

Restlet Protocol.FILE使用
EN

Stack Overflow用户
提问于 2016-01-03 13:32:59
回答 1查看 111关注 0票数 4

我有一个关于Restlet站点Protocol.FILE在这个示例中的使用的问题。

代码语言:javascript
运行
复制
// URI of the root directory.
public static final String ROOT_URI = "file:///c:/restlet/docs/api/";

[...]

// Create a component
Component component = new Component();
component.getServers().add(Protocol.HTTP, 8182);
component.getClients().add(Protocol.FILE);

// Create an application
Application application = new Application() {
    @Override
    public Restlet createInboundRoot() {
            return new Directory(getContext(), ROOT_URI);
    }
};

// Attach the application to the component and start it
component.getDefaultHost().attach(application);
component.start();

为什么需要将Protocol.FILE添加到客户端连接器列表中以提供目录/文件内容?

EN

Stack Overflow用户

回答已采纳

发布于 2016-01-03 19:43:53

仅仅因为您在ROOT_URI变量中使用了该协议;-)关于协议,在创建Restlet组件时需要显式地添加它们。客户端连接器提供了使用协议访问资源(本地或远程)的方法。

下面是关于引擎盖下面发生的事情的更多细节:

  • 在类路径中添加Restlet扩展时,会在引擎中注册一些元素。您可以有转换器、服务器连接器、客户端连接器.您可以看到在Engine本身的实例上注册了什么: List clientConnectors = Engine.getInstance().getRegisteredClients();for (ConnectorHelper clientConnector : clientConnectors) { System.out.println(clientConnector);}
  • 关于客户端连接器,它们对应于能够处理特定协议的实体。例如,是一个客户机连接器,用于基于执行HTTP和HTTPS请求。
  • 要实际使用这些注册的客户端连接器,需要通过指定要使用的协议来启用它们。例如,如果添加HTTP协议,Restlet将在已注册连接器列表中找到能够处理该协议的第一个客户端连接器。对于执行HTTP请求,它将使用此连接器。如果没有可用的连接器,它会抛出一个异常.

在您的例子中,FILE协议的客户端连接器是由Restlet本身提供的,因此它是自动注册的。但是您需要显式地告诉Restlet您想要使用这个协议。

希望它能帮到你,蒂埃里

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34577075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档