0

我正在使用带有 Google Engine 应用程序的 Eclipse 来公开我的服务器,但出现错误:

 
java.lang.NoClassDefFoundError: javax.naming.InitialContext is a restricted class. Please see the Google  App Engine developer's guide for more details.
    at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:52)
    at com.sun.faces.config.WebConfiguration.processJndiEntries(WebConfiguration.java:646)
    at com.sun.faces.config.WebConfiguration.(WebConfiguration.java:128)
    at com.sun.faces.config.WebConfiguration.getInstance(WebConfiguration.java:188)
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:164)
    at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
    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:273)
    at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:283)
    at com.google.appengine.tools.development.AutomaticInstanceHolder.startUp(AutomaticInstanceHolder.java:26)
    at com.google.appengine.tools.development.AbstractModule.startup(AbstractModule.java:87)
    at com.google.appengine.tools.development.Modules.startup(Modules.java:105)
    at com.google.appengine.tools.development.DevAppServerImpl.doStart(DevAppServerImpl.java:258)
    at com.google.appengine.tools.development.DevAppServerImpl.access$000(DevAppServerImpl.java:47)
    at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:213)
    at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:211)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:211)
    at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:277)
    at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
    at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:225)
    at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:216)

我找到了这个决议:

http://www.mkyong.com/google-app-engine/gae-jsf-javax-naming-initialcontext-is-a-restricted-class/

我这样做了,我在自己的项目中添加了 WebConfiguration.java 但我仍然面临这个问题,也许我的类不是项目在访问 WebConfiguration 时正在读取的类,也许它正在读取“旧的和错误的”文件它无法读取的 2 种方法,因为这会产生错误。

有人可以帮帮我吗?

太感谢了 :)

4

1 回答 1

0

您应该将 WebConfiguration.java 放在正确的包 (com.sun.faces.config) 中。根据您发布的堆栈跟踪,仍然调用了不兼容的方法 processJndiEntries,因此不使用您的类。

于 2016-09-21T13:13:31.900 回答