好的,我刚刚完成了我的第一个 JSF 项目,我想将它上传到 GAE。我已经尝试了大约 4 个小时,但无法使其正常工作。
我正在使用 JSF 2.0 和 App Engine 1.6.5。
我已经尝试了几个教程和以下所有组合:
罐子 - javax.faces-2.1.7-sources.jar el-ri-1.0.jar
设置 - GAE 1.6.5、JDK 1.7
错误:
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:51)
我认为这是因为我使用了不同的配置,所以我改为使用确切的设置。降级到 GAE 1.6.3.1 并在教程中使用了完全相同的 jar,但没有什么不同。
所以我尝试了第二个教程,其中列出了修复,其中涉及用 jsf-impl-gae.jar 替换 jsf-impl.jar 但这没有帮助。
在我这样做之后,我得到了错误:
WARNING: failed com.google.appengine.tools.development.DevAppEngineWebAppContext@1678d71{/,C:\Users\TOSHIBA\Documents\NetBeansProjects\Google AppEngine JSF 2.0 Template\war}: java.lang.VerifyError: Expecting a stackmap frame at branch target 36 in method com.sun.faces.config.WebConfiguration.getServletContextName()Ljava/lang/String; at offset 10
May 07, 2012 5:07:17 AM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: failed JettyContainerService$ApiProxyHandler@1547ec9: java.lang.VerifyError: Expecting a stackmap frame at branch target 36 in method com.sun.faces.config.WebConfiguration.getServletContextName()Ljava/lang/String; at offset 10
May 07, 2012 5:07:17 AM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: Error starting handlers
java.lang.VerifyError: Expecting a stackmap frame at branch target 36 in method com.sun.faces.config.WebConfiguration.getServletContextName()Ljava/lang/String; at offset 10
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:163)
我也试过这里列出的指南
我已经在两个不同的应用程序引擎 SDK 和两个 JDK 上尝试了所有可能的教程组合,我现在拥有 7 个 jar:el-api-2.2.1-b04.jar、el-impl-2.2.1-b05.jar、 el-ri-1.0.jar、javax.faces-2.1.7.jar、javax.faces-2.1.7-sources.jar、jsf-api-2.1.7.jar、jsf-impl-gae.jar。
任何帮助将不胜感激我想我明天会寻找一种不同的方式来上传我的项目,因为我在 JSF 和 Eclipse 方面遇到了麻烦,因此为什么我总是使用 Netbeans 但是 Netbeans 的 GAE 插件不再起作用。
谢谢