21 Aralık 2014 Pazar

Google App Engine'de PrimeFaces / JSF çalıştırmak

Merhabalar,

DevFest'te Çağatay Çivici'yi dinledikten sonra bir gaza gelip biraz uğraşmak istedim. Yaptıklarımın da sadece kendi bilgisayarımda çalışmasın diye düşündüm ve daldım Google App Engine'e :)

NetBeans, hem Google App Engine hem PrimeFaces kullanmak için ciddi bir kolaylık sağlıyor. (Bu da DevFest'in etkisi olsa gerek üzerimde) Neyse böyle şeylere başlarken en fazla zorluk çekilen nokta konfigürasyonu sağlamak, ki benim de öyle oldu. Sonunda çalıştırmayı başardım, ve bunu da paylaşmak istedim.

 Dosya yapısı şu şekilde oluştu:


appengine-web.xml:

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <application>excellent-shard-787</application>
    <version>${appengine.app.version}</version>
    <threadsafe>true</threadsafe>
    <sessions-enabled>true</sessions-enabled>
    <static-files>
        <exclude path="/**.xhtml" />
    </static-files>
   
    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
    </system-properties>
</appengine-web-app>

 faces-config.xml:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE faces-config PUBLIC
  "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
  "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">

    <application/>

</faces-config>
 web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <display-name>JavaServerFaces</display-name>

    <!-- GAE 1.6.3 cannot handle server side (JSF default) state management. -->
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
    </context-param>


    <!-- Change to "Production" when you are ready to deploy -->
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>

    <!-- Welcome page -->
    <welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>

    <!-- JSF mapping -->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Map these files with JSF -->
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
</web-app>
 Yararlandığım kaynaklar:

http://www.mkyong.com/google-app-engine/google-app-engine-jsf-2-example/

stackoverflow.com/questions/8409336/java-lang-nullpointerexception-at-com-sun-faces-context-flash-elflash-getflash

Hiç yorum yok:

Yorum Gönder