如何将restlet附加到特定的URL路径方案(HTTP或HTTPS)



我使用Restlet 2.3.2

我想运行一个Restlet服务器与HTTP和HTTPS协议,但我想附加一个不同的Restlet到每一个。例如:restletUnsecure转HTTP, restletSecure转HTTPS。实际上,只在路径/test上附加一个restlet就可以正常工作。

我尝试在附加时将方案放在URI中,像这样,但这不起作用(我的浏览器没有找到一个页面):

Server server = component.getServers().add(Protocol.HTTPS, 8443);
component.getServers().add(Protocol.HTTP, 8080);
[...]
component.getDefaultHost().attach("https://localhost:8443/test", restletSecure);
component.getDefaultHost().attach("http://localhost:8080/test", restletUnsecure);

我认为您应该定义特定的虚拟主机HTTP和HTTPS请求,如下所述:

Component component = (...)
// HTTPS
VirtualHost hostHttps
      = new VirtualHost(component.getContext());
component.getHosts().add(hostHttps);
hostHttps.setHostScheme("https");
Restlet restletSecure = (...)
hostHttps.attachDefault(restletSecure);
// HTTP
VirtualHost hostHttp
      = new VirtualHost(component.getContext());
component.getHosts().add(hostHttp);
hostHttp.setHostScheme("http");
Restlet restletUnsecure = (...)
hostHttp.attachDefault(restletUnsecure);

希望它能帮助你,蒂埃里

最新更新