如果容器與檢票應用提供您的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