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

时间:2015-05-29 17:50:49

标签: java restlet

我使用的是Restlet 2.3.2

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

我尝试在附加时将方案放在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);

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

我认为您应该定义特定的虚拟主机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);

希望它可以帮到你, 亨利