【发布时间】:2016-11-15 09:41:00
【问题描述】:
当我尝试部署到 weblogic 12C 时出现问题
我遵循的步骤,
- JSTL - 1.2
- JSF - 1.2
- richfaces-rich-4.5.17.Final
- richfaces-a4j-4.5.17.Final
- richfaces-core-4.5.17.Final
我也包括在内,
- guava-18.0.jar
- cssparser-0.9.19.jar
- sac-1.3.jar
- annotations-4.0.0.Final.jar
部署成功,但是当我尝试使用<rich:fileUpload> 上传文件时出现以下错误:
JSF 实现 1.0.0.0_2-1-5 不支持 RichFaces ExtendedPartialViewContext。请至少升级到 Mojarra 2.1.28 或 2.2.6
然后我用 Richfaces 4.5.17 将 JSF1.2 升级到 jsf-api-2.1.28 和 jsf-impl-2.1.28。
当我尝试上传收到的文件时:
javax.servlet.ServletException: IO Error parsing multipart request
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:242)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:216)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:132)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:352)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:75)
at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:343)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:75)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:302)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:367)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:75)
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:75)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:75)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3288)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3254)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2163)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2091)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2074)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1512)
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: org.ajax4jsf.exception.FileUploadException: IO Error parsing multipart request
at org.ajax4jsf.request.MultipartRequest.parseRequest(MultipartRequest.java:388)
at org.richfaces.component.FileUploadPhaselistener.beforePhase(FileUploadPhaselistener.java:63)
at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:228)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:99)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
... 29 more
发现 12.1.1 WLS 服务器的 JSF 默认版本低于 2.1.28 JSF 版本,所以我将 JSF 版本更改为 jsf-api-2.0.0 和 jsf-impl-2.0.0 和 将 RichFaces 版本从 4.5.17 更改为:
- richfaces-core-api-4.0.0.Final
- richfaces-core-impl-4.0.0.Final
- richfaces-components-ui-4.0.0.Final
- richfaces-components-api-4.0.0.Final.
部署失败:
<Critical error during deployment:
com.sun.faces.config.ConfigurationException: The tag named remove from namespace http://java.sun.com/jsf/facelets has a null handler-class defined
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processHandlerClass(FaceletTaglibConfigProcessor.java:415)
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTags(FaceletTaglibConfigProcessor.java:371)
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTagLibrary(FaceletTaglibConfigProcessor.java:314)
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.process(FaceletTaglibConfigProcessor.java:263)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:362)
Truncated. see log file for complete stacktrace
>
<Jul 12, 2016 6:29:19 PM SGT> <Warning> <HTTP> <BEA-101162> <User defined listener com.sun.faces.config.ConfigureListener failed: java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: The tag named remove from namespace http://java.sun.com/jsf/facelets has a null handler-class defined.
java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: The tag named remove from namespace http://java.sun.com/jsf/facelets has a null handler-class defined
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:292)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:582)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
Truncated. see log file for complete stacktrace
Caused By: com.sun.faces.config.ConfigurationException: The tag named remove from namespace http://java.sun.com/jsf/facelets has a null handler-class defined
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processHandlerClass(FaceletTaglibConfigProcessor.java:415)
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTags(FaceletTaglibConfigProcessor.java:371)
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTagLibrary(FaceletTaglibConfigProcessor.java:314)
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.process(FaceletTaglibConfigProcessor.java:263)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:362)
Truncated. see log file for complete stacktrace
我将 web.xml 标头更改为:
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
请在使用 RichFaces 的 WebLogic 12c 中为 rich:fileUpload 提供建议。
【问题讨论】:
标签: file-upload richfaces weblogic12c