Google App Engine JSF 2-Beispiel

Beispiel für Google App Engine + JSF 2

In diesem Tutorial zeigen wir Ihnen, wie Sie eine JSF 2.0-Webanwendung in einer Google App Engine (GAE) -Umgebung entwickeln und bereitstellen.

Verwendete Tools und Technologien:

  1. JDK 1.6

  2. Eclipse 3.7 + Google Plugin für Eclipse

  3. Java SDK für Google App Engine 1.6.3.1

  4. JSF 2.1.7

Note
In diesem Beispiel werden dieseJSF 2.0 hello world example wiederverwendet, geändert und mit diesenGAE + Java example zusammengeführt.

1. Neues Webanwendungsprojekt

Erstellen Sie in Eclipse ein neues Webanwendungsprojekt mit dem Namen "JSFGoogleAppEngine".

generate a new web application GAE project

"Google Plugin for Eclipse" generiert ein Beispiel für die GAE-Projektstruktur.

2. JSF 2 Abhängigkeiten

Um JSF 2 in GAE verwenden zu können, benötigen Sie folgende Gläser

  1. jsf-api-2.1.7.jar

  2. jsf-impl-2.1.7.jar

  3. el-ri-1.0.jar

Kopieren Sie es und legen Sie es im Ordner "war/WEB-INF/lib" ab.

gae jsf2 dependency libraries

Klicken Sie mit der rechten Maustaste auf den Projektordner und wählen Sie „Properties“. Wählen Sie die Registerkarte „Java Build Path“ → „Libraries“, klicken Sie auf die Schaltfläche „Add Jars“ und wählen Sie die obigen Gläser aus.

gae jsf2 java build path

Note
Sie müssen diesesel-ri-1.0.jar eingeben, andernfalls wird die FehlermeldungUnable to instantiate ExpressionFactory ‘com.sun.el.ExpressionFactoryImpl’ angezeigt.

3. JSF Managed Bean

3.1 Delete plugin generated JSFGoogleAppEngineServlet.java, you don’t need this.

3.2 Create a managed bean.

Datei: src / com / example / HelloBean.java

package com.example;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import java.io.Serializable;

@ManagedBean
@SessionScoped
public class HelloBean implements Serializable {

    private static final long serialVersionUID = 1L;

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

3.3 Create a new WebConfiguration.java.

JSF 2 verwendet "javax.naming.InitialContext", die in GAE nicht unterstützt werden.

Um dies zu lösen, müssen Sie eine Kopie des JSF-Quellcodes erhalten, dieWebConfiguration.java klonen, Kommentarmethoden, die die Klasse "javax.naming.InitialContext" verwenden, in "src/com/sun/faces/comfig/WebConfiguration.java" einfügen. Jetzt überlädt Ihre neu erstellteWebConfiguration.java-Klasse die ursprünglichenWebConfiguration.java.

Note
Ermittelt die vollensource code of the WebConfiguration.java.

Ich glaube nicht, dass das GAE-Team dieses Jar auf die Whitelist setzen wird. Ich hoffe nur, dass das JSF-Team dies in zukünftigen Releases beheben kann.

4. JSF-Seiten

4.1 Create hello.xhtml page, accept a user input and pass it to helloBean.

Datei: war / hello.xhtml





    GAE + JSF


    

Google App Engine + JSF 2.0 example - hello.xhtml

4.2 Create welcome.xhtml page, display the user input from hellobean.

Datei: war / welcome.xhtml





    GAE + JSF


    

Google App Engine + JSF 2.0 example - welcome.xhtml

Welcome #{helloBean.name}

4.3 Delete the plugin generated index.html file, you don’t need this.

5. web.xml

Aktualisieren Sie die Datei web.xml und integrieren Sie JSF 2.

Datei: web.xml



    JavaServerFaces

    
    
        javax.faces.STATE_SAVING_METHOD
        client
    


    
    
        javax.faces.PROJECT_STAGE
        Development
    

    
    
        faces/hello.xhtml
    

    
    
        Faces Servlet
        javax.faces.webapp.FacesServlet
        1
    

    
    
        Faces Servlet
        /faces/*
    
    
        Faces Servlet
        *.jsf
    
    
        Faces Servlet
        *.faces
    
    
        Faces Servlet
        *.xhtml
    

Note
GAE unterstützen die serverseitige Statusverwaltung nicht. Sie müssen daher "javax.faces.STATE_SAVING_METHOD" bis "client" definieren, um dieses "http: //" zu vermeiden. www.example.com/google-app-engine/gae-jsf-view-hello-xhtml-could-not-be-restored/[View /hello.xhtml konnte nicht wiederhergestellt werden] ”Fehlermeldung in der GAE-Produktionsumgebung.

6. Sitzung in GAE aktivieren

Aktualisieren Sieappengine-web.xml, aktivieren Sie die Sitzungsunterstützung, JSF benötigt diese.
_
Datei: appengine-web.xml_


  
  1

    true

7. Verzeichnisaufbau

Überprüfen Sie die endgültige Verzeichnisstruktur.

final directory structure

8. Führen Sie auf lokal aus

Klicken Sie mit der rechten Maustaste auf das Projekt und führen Sie es als "Web Application" aus.

local output

Klicken Sie auf die Schaltfläche.

local output

10. Auf GAE bereitstellen

Aktualisieren Sie die Dateiappengine-web.xmlund fügen Sie Ihre App Engine-Anwendungs-ID hinzu.

Datei: appengine-web.xml


  example-jsf2gae
  1

    true

Wählen Sie ein Projekt aus und klicken Sie auf das Google-Symbol „Deploy to App Engine“.

deploy on GAE

gae production output

Quellcode herunterladen

Aufgrund der großen Dateigröße sind alle JSF- und GAE-Gläser ausgeschlossen.

Herunterladen -JSF2-GoogleAppEngine-Example.zip (42 KB)