Struts 2 bei GAE - Fehler: Ergebnis 'null' nicht gefunden

Struts 2 auf GAE - Fehler: Ergebnis "null" nicht gefunden

Problem

Entwickeln von Struts2 in Google App Engine in der folgenden Umgebung.

  1. Streben 2.3.1.2

  2. JDK 1.6

  3. Eclipse 3.7 + Google Plugin für Eclipse

  4. Java SDK für Google App Engine 1.6.3.1

Gerade ein einfaches Beispiel für eine Struts2-Hallo-Welt gestartet. Wenn Sie auf die Aktionsklasse zugreifen, wird der Fehler "Fehler: Ergebnis 'Null' nicht gefunden" sowohl in der lokalen Entwicklungs- als auch in der realen Produktions-GAE-Umgebung angezeigt.

struts2 on gae - result null error

Lösung

OGNL führt einige Sicherheitsüberprüfungen durch, die in GAE nicht unterstützt werden. UmStruts 2 works on GAE environment zu erstellen, müssen Sie einen Listener inweb.xml erstellen und den OGNL-Sicherheitsmanager auf null setzen.

OgnlRuntime.setSecurityManager(null);

Vollständiges Beispiel.

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

    }

}

Datei: web.xml



    
       struts2
       
             org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
           
    

    
        struts2
        /*
    

    
        com.example.listener.Struts2ListenerOnGAE