WebSphere Portal 6.1.5のJSR286、Struts2ポートレットを使用してWebアプリケーションを作成しています 問題はCookieInterceptorに組み込まれた作業をできないことです。 私はのsrc/struts.xmlでこれを試してみた:Struts2ポートレットがCookieInterceptorを使用してクッキーを読み取る
<package name="web-app-default" extends="struts-portlet-default , json-default" abstract="true">
<interceptors>
<interceptor name="superInterceptor" class="ru.app.SuperInterceptor" />
<interceptor-stack name="ekp-cookie-stack">
<interceptor-ref name="cookie">
<param name="cookiesName">my-filter-cookie</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="portletDefaultStack" />
<global-results>
<result name="error">/jsp/common/error.jsp</result>
</global-results>
</package>
とアクション:
public abstract class EventGeneralAction extends GeneralAction implements CookiesAware{
//some code...
/** {@link CookieInterceptor} should inject ekp-filter-cookie. */
@SuppressWarnings("unchecked")
public void setCookiesMap(Map cookies){
LOG.trace("#setCookiesMap -> cookies[{}]", cookies);
this.cookies = cookies;
}
}
方法setCookiesMapが呼び出されていません。 Firebugを使用しましたが、リクエストヘッダーに「my-filter-cookie」が含まれています(JQuery Cookieプラグインを使用して設定されています)。 MozillaのWebDeveloperでは、ブラウザにこのようなCookieがあることが示され、CURRENT_TIME + 1年の期限が切れます。
別の設定を試しました。私はアクションのためのインターセプタを書いた:
<!-- Shows events on desired day of year. ShowDayEventsAction is a subclass of EventGeneralAction -->
<action name="main" class="ru.app.ShowDayEventsAction" >
<interceptor-ref name="cookie">
<param name="cookiesName">my-filter-cookie</param>
</interceptor-ref>
<result>/jsp/event/view/day.jsp</result>
</action>
再び失敗...?何が間違っていますか?提案してください。
私はちょうどそれを持っています。私は、** <インターセプター> **が** default-interceptor-ref **と定義されているスタックに追加されると思っていましたが、それは私の間違いでした。 – Sergey
SystemOut.logに奇妙な例外があります: – Sergey
[22.11.10 23:31:30:177 MSK] 0000006c SystemOut 11/22 23:31:30.176 [WARN] com.opensymphony.xwork2.util.logging.commons.CommonsLoggerOgnl ValueStack:com.opensymphony.xwork2.util.logging.commons.CommonsLoggerError値 'SOME-VALUE-GOEs-HERE'を持つ式 'my-filter-cookie'を設定します。(my-filter) - cookie at ognl.SimpleNode。 setValueBody(SimpleNode.java:257) なぜそれはoocursですか? my-filter-cookieはクッキーです...理解できません。たぶん ' - '記号がOGNLのために混乱しているのでしょうか? – Sergey