Google App Engine + JSF 2出错 [英] Google App Engine + JSF 2 give the error

查看:117
本文介绍了Google App Engine + JSF 2出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用此链接与谷歌应用程序引擎与jsf所以我得到这个错误,当我运行在日食,所以给予欲望解决方案
链接是 http://www.mkyong.com/google-app-engine/google-app-engine-jsf- 2-example /

  java.lang.ClassNotFoundException:javax.faces.webapp.FacesServlet 
at java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)在java.net.URLClassLoader上
$ 1.run(URLClassLoader.java:355)$ java.util.AccessController.doPrivileged中的
(Native方法)在java.net.URLClassLoader.findClass上的
(URLClassLoader.java:354)在java.lang.ClassLoader.loadClass上的
(ClassLoader.java:423)在com.google.appengine上的
。 tools.development.IsolatedAppClassLoader.loadClass
(IsolatedAppClassLoader.java:207)$ b $在java.lang.ClassLoader.loadClass(ClassLoader.java:356)
在org.mortbay.util.Loader。 loadCl (Loader.java:91)
at org.mortbay.util.Loader.loadClass(Loader.java:71)
at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay .jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at org.mortbay.jetty.webapp .WebAppContext.doStart(WebAppContext.java:467)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper .java:130)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at org .mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
,位于com.google.appengine.tools.development.JettyContainerService.startContainer
(JettyContainerService.java:197)
at com .google.appengine.tools.development.AbstractContainerService.startup
(AbstractContainerService.java:241)
,位于com.google.appengine.tools.development.DevAppServerImpl.start
(DevAppServerImpl.java: 148)
,位于com.google.appengine.tools.development.DevAppServerMain $ StartAction.apply
(DevAppServerMain.java:310)
,位于com.google.appengine.tools.util.Parser $ ParseResult.applyArgs(Parser.java:48)
,位于com.google.appengine.tools.development.DevAppServerMain。< init>
(DevAppServerMain.java:249)
,位于com.google.appengine.tools.development.DevAppServerMain.main
(DevAppServerMain.java:225)

Sep 06 ,2012 10:58:55 AM com.google.appengine.tools.development.ApiProxyLocalImpl log
SEVERE:javax.servlet.ServletContext log:unavailable
javax.servlet.UnavailableException:javax.faces.webapp。 FacesServlet
at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242)
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
at org.mortbay。 jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at org.mortbay.jetty.handler。 ContextHandler.doStart(ContextHandler.java:517)
在org.mortbay.jetty .webapp.WebAppContext.doStart(WebAppContext.java:467)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart (HandlerWrapper.java:130)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130 )
at org.mortbay.jetty.Server.doStart(Server.java:224)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at com。 google.appengine.tools.development.JettyContainerService.startContainer
(JettyContainerService.java:197)
at com.google.appengine.tools.development.AbstractContainerService.startup
(AbstractContainerService.java:241 )
,位于com.google.appengine.tools.development.DevAppServerImpl.start
(DevAppServerImpl.java:148)
,位于com.google.appengine.tools.development.DevAppServerMain $ StartAction.apply
(DevAppServerMain.java:310)
,位于com.google.appengine.tools.util.Parser $ ParseResult.applyArgs(Parser.java:48)
,位于com.google.appengine.tools .development.DevAppServerMain。
< init>(DevAppServerMain.java:249)
,位于com.google.appengine.tools.development.DevAppServerMain.main
(DevAppServerMain.java:225)

Sep 06,2012 10:58:55 AM com.google.apphosting.utils.jetty.JettyLogger警告
警告:失败的Faces Servlet:java.lang.NullPointerException
Sep 06,2012 10:58 :55上午com.google.apphosting.utils.jetty.JettyLogger警告
警告:上下文启动失败
com.google.appengine.tools.development.DevAppEngineWebAppContext@1dc94ea
{/,C :\Documents and Settings\Shilendra Sharma\workspace\Shilu\war}
java.lang.NullPointerException $ b $ java.lang.Class.isAssignableFrom(Native Method)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty。 servlet.ServletHandler.initialize(ServletHandler.java:685)
a t org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at org.mortbay .jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
at org.mortbay.component.AbstractLifeCycle .start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java :50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
com.google.appengine.tools.development.JettyContainerService.startContainer
(JettyContainerService.java:197)
在com.google.appengine.tools.development.Abst ractContainerService.startup
(AbstractContainerService.java:241)
,位于com.google.appengine.tools.development.DevAppServerImpl.start
(DevAppServerImpl.java:148)
at com。 google.appengine.tools.development.DevAppServerMain $ StartAction.apply
(DevAppServerMain.java:310)
com.google.appengine.tools.util.Parser $ ParseResult.applyArgs
(Parser .java:48)
,位于com.google.appengine.tools.development.DevAppServerMain。
< init>(DevAppServerMain.java:249)
,位于com.google.appengine.tools.development.DevAppServerMain.main
(DevAppServerMain.java:225)


所以任何人都可以帮助我正常工作

App shilendra

解决方案

JSF 2使用GAE不支持的javax.naming.InitialContext。



解决这个问题:


  • 您需要获得JSF源代码的副本。复制WebConfiguration.java使用javax.naming.InitialContext类的注释方法
  • 但是等等,我修改了最新的(jsf 2.2.12),这里是: WebConfiguration.java

  • 把它在com.sun.faces.config包中。



现在,您新创建的WebConfiguration.java类将重载原始WebConfiguration.java。


I am using this linkfor google app engine with jsf so i am getting this error when i run the on eclipse so give the desire solution link is http://www.mkyong.com/google-app-engine/google-app-engine-jsf-2-example/

    java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass
     (IsolatedAppClassLoader.java:207)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at org.mortbay.util.Loader.loadClass(Loader.java:91)
    at org.mortbay.util.Loader.loadClass(Loader.java:71)
    at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73)
    at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at com.google.appengine.tools.development.JettyContainerService.startContainer
    (JettyContainerService.java:197)
    at com.google.appengine.tools.development.AbstractContainerService.startup
    (AbstractContainerService.java:241)
    at com.google.appengine.tools.development.DevAppServerImpl.start
    (DevAppServerImpl.java:148)
    at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply
    (DevAppServerMain.java:310)
    at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
    at com.google.appengine.tools.development.DevAppServerMain.<init>
     (DevAppServerMain.java:249)
     at com.google.appengine.tools.development.DevAppServerMain.main
     (DevAppServerMain.java:225)

  Sep 06, 2012 10:58:55 AM com.google.appengine.tools.development.ApiProxyLocalImpl log
     SEVERE: javax.servlet.ServletContext log: unavailable
      javax.servlet.UnavailableException: javax.faces.webapp.FacesServlet
    at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79)
    at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at com.google.appengine.tools.development.JettyContainerService.startContainer
    (JettyContainerService.java:197)
    at com.google.appengine.tools.development.AbstractContainerService.startup
     (AbstractContainerService.java:241)
    at com.google.appengine.tools.development.DevAppServerImpl.start
    (DevAppServerImpl.java:148)
    at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply
    (DevAppServerMain.java:310)
    at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
    at com.google.appengine.tools.development.DevAppServerMain.
    <init>(DevAppServerMain.java:249)
    at com.google.appengine.tools.development.DevAppServerMain.main
    (DevAppServerMain.java:225)

     Sep 06, 2012 10:58:55 AM com.google.apphosting.utils.jetty.JettyLogger warn
   WARNING: failed Faces Servlet: java.lang.NullPointerException
    Sep 06, 2012 10:58:55 AM com.google.apphosting.utils.jetty.JettyLogger warn
   WARNING: Failed startup of context
   com.google.appengine.tools.development.DevAppEngineWebAppContext@1dc94ea
    {/,C:\Documents and Settings\Shilendra Sharma\workspace\Shilu\war}
     java.lang.NullPointerException
    at java.lang.Class.isAssignableFrom(Native Method)
    at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
     at com.google.appengine.tools.development.JettyContainerService.startContainer
    (JettyContainerService.java:197)
    at com.google.appengine.tools.development.AbstractContainerService.startup
    (AbstractContainerService.java:241)
    at com.google.appengine.tools.development.DevAppServerImpl.start
    (DevAppServerImpl.java:148)
    at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply
    (DevAppServerMain.java:310)
    at com.google.appengine.tools.util.Parser$ParseResult.applyArgs
    (Parser.java:48)
    at com.google.appengine.tools.development.DevAppServerMain.
    <init>(DevAppServerMain.java:249)
    at com.google.appengine.tools.development.DevAppServerMain.main
    (DevAppServerMain.java:225)


   so any one help me for it work properly

App shilendra

解决方案

JSF 2 is using "javax.naming.InitialContext" that’s not supported in GAE.

To solve this:

  • You need to get a copy of the JSF’s source code. Copy the WebConfiguration.java
  • Comment methods that are using "javax.naming.InitialContext" class
  • But wait, I have modified the latest (jsf 2.2.12) and here it is: WebConfiguration.java
  • Put it in the package com.sun.faces.config.

Now, your newly created WebConfiguration.java class will overload the original WebConfiguration.java.

这篇关于Google App Engine + JSF 2出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆