【发布时间】:2013-04-25 19:14:12
【问题描述】:
我尝试将我的 JSF 2.1 Webapp 迁移到 Google App 引擎。
在本地开发模式下一切正常,在 GAE 上部署也正常,但是当我尝试访问任何页面时,我得到 HTTP 代码 500。日志文件显示存在 ClassNotFoundException:
INFO: com.sun.faces.lifecycle.ELResolverInitPhaseListener populateFacesELResolverForJsp: JSF1027: [null]
The ELResolvers for JSF were not registered with the JSP container.
WARNING: populateFacesELResolverForJsp: JSF1027: [null] The ELResolvers for JSF were not registered with the JSP container.
javax.servlet.ServletException: java.lang.RuntimeException:
java.lang.ClassNotFoundException: com.sun.org.apache.xerces.internal.dom.ElementNSImpl
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:268)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:438)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:480)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:487)
at com.google.tracing.TraceContext.runInContext(TraceContext.java:774)
at com.google.tracing.TraceContext$DoInTraceContext.runInContext(TraceContext.java:751)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:342)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:334)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:484)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
at java.lang.Thread.run(Thread.java:722)
我已经尝试部署了对应的库jaxp-ri-1.4.jar,但是没有效果。
关于我的配置和第三方库的更多信息:
- Mojarra JSF 2.1.12
- Primefaces 3.5
- Primefaces Extensions
- Prettyfaces 3.3.3
- Ebay Finding Api
- STATE_SAVING_METHOD set to 'client'
- i use EL 2.2 form jboss seam <context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
</context-param>
感谢您的帮助!
【问题讨论】:
-
是的,我检查了这个。我已经实现了修改后的 WebConfiguration.java。我认为 lib 文件夹中包含旧文件。我重建一切并再次上传。同样的问题,但如果我使用 url 访问应用程序:1.version.myapp.appspot.com - 它可以工作!
-
好的,它不起作用。该页面现在已呈现,但在任何 ajax 请求上我都会得到响应:
class java.lang.NoClassDefFoundError -
你的 faces-config.xml 是否有:
org.jboss.seam.jsf.SeamELResolver -
"java.lang.ClassNotFoundException: com.sun.org.apache.xerces.internal.dom.ElementNSImpl",需要添加jaxp-ri jar文件。
标签: java google-app-engine jsf jsf-2 primefaces