[英]Primefaces 3.5 JSF 2.1 ClassNotFoundException on GAE
我嘗試將JSF 2.1 Webapp遷移到Google App引擎。
一切都可以在本地開發人員模式下正常運行,在GAE上也可以正常部署,但是當我嘗試訪問任何頁面時,都會得到HTTP Code500。日志文件顯示存在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>
謝謝你的幫助!
經過一些調試后,我發現eBay Finding API導致了問題,因為它使用SOAP進行服務調用。 無需致電eBay Api,一切運行正常。
com.sun.org.apache.xerces.internal.dom.NodeImpl is a restricted Class
似乎eBay查找API與Google App Engine不兼容,因為它使用JAX-WS。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.