仅仅因为您在ROOT_URI变量中使用此协议;-)关于协议,您需要在创建Restlet组件时显式添加它们.客户端连接器提供了一种使用协议访问资源(本地或远程)的方法.
这里有一些关于幕后发生的事情的更多细节:
>在类路径中添加Restlet扩展时,会在引擎中注册一些元素.您可以拥有转换器,服务器连接器,客户端连接器……您可以看到Engine实例上注册的内容:
List> clientConnectors
= Engine.getInstance().getRegisteredClients();
for (ConnectorHelper clientConnector : clientConnectors) {
System.out.println(clientConnector);
}
>关于客户端连接器,它们对应于能够处理特定协议的实体.例如,Jetty扩展提供客户端连接器,以基于Jetty客户端API执行HTTP和HTTPS请求.
>要实际能够使用这些已注册的客户端连接器,您需要通过指定要使用的协议来启用它们.例如,如果添加HTTP协议,Restlet将在已注册的能够处理此协议的列表中找到第一个客户端连接器.对于执行HTTP请求,它将使用此连接器.如果没有可用的连接器,它将抛出异常……
在您的情况下,FILE协议的客户端连接器由Restlet核心本身提供,因此它会自动注册.但是您需要明确告诉Restlet您要使用此协议.
希望它能帮到你,蒂埃里