如果容器与检票应用提供您的Restlet服务器部分股相同的网络会话,你可以访问它在检票:
((HttpServletRequest) RequestCycle.get().getRequest().getContainerRequest()).getSession()
它给你提供的javax.servlet.http.HttpSession通过Servlet api。您的Wicket会话将延伸至org.apache.wicket.protocol.http.WebSession存储在此会话中的wicket:wicket.yourapp:会话密钥以及您设置的其他数据或您在Wicket之外使用的库。
我不知道Restlet以及您如何在那里传播会话,但我认为您需要依赖于Restlet/Shiro部分中的Servlet,该部分将数据存储在会话中。
编辑:检查Shiros会议接口的javadoc: //A Session is intended to be managed by the business tier and accessible via other tiers without being tied to any given client technology. This is a great benefit to Java systems, since until now, the only viable session mechanisms were the javax.servlet.http.HttpSession or Stateful Session EJB's, which many times unnecessarily coupled applications to web or ejb technologies
这种考虑上述建议不会工作,但它的声音,你应该能够很容易地访问Shiros Session对象,如果添加四郎依赖于你的Wicket的一部分。
您的restlet侧和wicket部分在同一个网络服务器上吗?通过调用:((HttpServletRequest)RequestCycle.get()。getRequest()。getContainerRequest())。getSession()' – Bravehorsie 2014-12-02 12:36:32
可以访问Servlet组件。实际上是相同的项目,但Restlet REST服务器部分是JAR依赖项(我正在尝试执行的解耦模式) – xybrek 2014-12-02 18:23:25