JSF 2.0 dont like google appengine

You write nice simple JSF application and when you try to run it in appengine browser shows:

HTTP ERROR: 404
NOT_FOUND
RequestURI=/
Powered by jetty://

Stacktrace looks like:

[java] The server is running at http://localhost:8080/
     [java] 19.01.2010 19:42:14 com.google.apphosting.utils.jetty.JettyLogger warn
     [java] WARNING: failed com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@6ee3849c{/,/home/user/NetBeansProjects/HelloWorld/build/web}
     [java] java.lang.NoClassDefFoundError: javax.naming.InitialContext is a restricted class. Please see the Google  App Engine developer's guide for more details.
     [java]         at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
     [java]         at com.sun.faces.config.WebConfiguration.processJndiEntries(WebConfiguration.java:578)
     [java]         at com.sun.faces.config.WebConfiguration.(WebConfiguration.java:114)
     [java]         at com.sun.faces.config.WebConfiguration.getInstance(WebConfiguration.java:174)

Problem is that appengine has issue with JSF implementation and you must rewrite jsf-impl.jar to fix it. Fortunately there is guy who already did this, see http://javadocs.wordpress.com/2009/10/17/mojarra-jsf-2-0-rc2-and-google-app-engine-sdk-1-2-6/

IMPORTANT! If this seems not to do the trick then clean and build is needed.

One more useful link is https://sites.google.com/a/wildstartech.com/adventures-in-java/Java-Platform-Enterprise-Edition/JavaServer-Faces/sun-javaserver-faces-reference-implementation/configuring-jsf-20-to-run-on-the-google-appengine


Leave a Reply

Your email address will not be published.


*