GAEのStruts 2 - エラー:結果 'null’が見つかりません

GAEのStruts 2 –エラー:結果「null」が見つかりません

問題

次の環境で、Google App EngineでStruts2を開発しています。

  1. Struts 2.3.1.2

  2. JDK 1.6

  3. Eclipse 3.7 + Eclipse用Googleプラグイン

  4. Google App Engine Java SDK 1.6.3.1

単純なStruts2のhello worldの例を開始しました。アクションクラスにアクセスすると、ローカル開発および実際の実稼働GAE環境の両方で、エラー「エラー:結果 'null'が見つかりません」がヒットします。

struts2 on gae - result null error

溶液

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