GAEのStruts 2 –エラー:結果「null」が見つかりません
問題
次の環境で、Google App EngineでStruts2を開発しています。
-
Struts 2.3.1.2
-
JDK 1.6
-
Eclipse 3.7 + Eclipse用Googleプラグイン
-
Google App Engine Java SDK 1.6.3.1
単純なStruts2のhello worldの例を開始しました。アクションクラスにアクセスすると、ローカル開発および実際の実稼働GAE環境の両方で、エラー「エラー:結果 'null'が見つかりません」がヒットします。

溶液
OGNLはいくつかのセキュリティチェックを実行していますが、これはGAEではサポートされていません。 Struts 2 works on GAE environmentを作成するには、web.xmlにリスナーを作成し、OGNLセキュリティマネージャーをnullに設定する必要があります。
OgnlRuntime.setSecurityManager(null);
完全な例
package com.example.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import ognl.OgnlRuntime;
public class Struts2ListenerOnGAE implements ServletContextListener,
HttpSessionListener, HttpSessionAttributeListener {
public void contextInitialized(ServletContextEvent sce) {
OgnlRuntime.setSecurityManager(null);
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void sessionCreated(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void attributeAdded(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void attributeRemoved(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void attributeReplaced(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub
}
}
ファイル:web.xml
struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* com.example.listener.Struts2ListenerOnGAE