java.lang.NoSuchMethodError:org.apache.commons.io.IOUtils.readFully(Ljava / io / InputStream; [B] V

时间:2017-01-09 05:53:44

标签: java struts2 weblogic12c

当我尝试提交包含文件的HTML表单时,我在动作类中得到以下异常:

java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.readFully(Ljava/io/InputStream&#59;[B)V
    at org.apache.commons.fileupload.disk.DiskFileItem.get(DiskFileItem.java:315)
    at org.apache.commons.fileupload.disk.DiskFileItem.getString(DiskFileItem.java:339)
    at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.processNormalFormField(JakartaMultiPartRequest.java:177)
    at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.processUpload(JakartaMultiPartRequest.java:132)
    at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.parse(JakartaMultiPartRequest.java:92)
    at org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper.<init>(MultiPartRequestWrapper.java:84)
    at org.apache.struts2.dispatcher.Dispatcher.wrapRequest(Dispatcher.java:838)
    at org.apache.struts2.dispatcher.ng.PrepareOperations.wrapRequest(PrepareOperations.java:137)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3431)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3397)
    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:2280)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2196)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1621)
    at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:256)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)

我使用Struts 2框架作为后端,使用Weblogic 12c作为应用程序服务器。
部署到服务器的战争包含commons-io-2.2.jar。

即使在部署到Web逻辑12c服务器的war中存在所需的jar - commons-io-2.2.jar ,导致此问题的原因是什么?是Web逻辑中是否有任何jar与应用程序之争中捆绑的commons-io-2.2.jar冲突的12c服务器?

我在修补程序后遇到此问题 - 将23744018添加到Web逻辑12c服务器。

1 个答案:

答案 0 :(得分:0)

我注意到,在您的异常消息中,在您的HTML中,您将上传某些功能需要commons-io-xxx.jar来支持,而当您配置时struts2 ,你还需要commons-io-xxx.jar。所以我认为存在冲突!