【问题标题】:getting ClassNotFoundException:org.apache.commons.io.output.DeferredFileOutputStream error while using commons.fileupload with Equinox osgi [duplicate]使用带有 Equinox osgi 的 commons.fileupload 时出现 ClassNotFoundException:org.apache.commons.io.output.DeferredFileOutputStream 错误 [重复]
【发布时间】:2014-03-05 07:58:36
【问题描述】:

我正在尝试实现需要文件作为输入的 Web 插件。所以我正在使用 org.apache.commons.fileupload。它对 org.apache.commons.io 具有内部依赖性,因此将其包含在我的插件和 Bridge 中。但在运行时出现以下错误。

SEVERE: Servlet.service() for servlet [equinoxbridgeservlet] in context with path [/bridge]      threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream
at    org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
    at     org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:195)
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:343)
at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:115)
at sci2webbundle.UploadFile.doPost(UploadFile.java:122)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:91)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:110)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:115)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)

【问题讨论】:

  • 在 OSGI 控制台上我可以看到 31 ACTIVE org.apache.commons.collections_3.1.0212 RESOLVED org.apache.commons.io_2.1.0 无法理解为什么 classNotFoundException !!!

标签: java osgi apache-commons-fileupload


【解决方案1】:

我几乎做对了所有事情。但我忘记在MANIFEST.MF 文件中添加对导入包的依赖项。只需将 org.apache.commons.io.output 添加到依赖项即可。它有效:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-20
    • 2013-12-23
    • 2020-12-23
    • 2010-11-06
    • 2019-03-15
    • 2019-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多