摘自张华的博客 从昨天开始有一个问题令我挺是郁闷。我用tomcat与tomcat plugin开发一个上传的小程序(上传组件用的是:common upload)。当然刚开始为了能够调试都是在eclipse里通过tomcat plugin启动的tomcat , 运行程序后报错误:java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream。很显然是common-io.jar这个包没加到classpath中(事实上我已经加了)。在网上找了很多贴子,都说是common-io.jar这个包没有加,这下子我就纳闷了,为什么就不行呢?
于是,我开始怀疑是JAR的版本不兼容(因为我每次遇到这种稀其古怪的问题时最后发现都是版本不兼容)。接着就开始更换commons-io.jar包的版本。还是不行。
实在搞不清楚为什么了,向同事请教,他们看后也不知道为什么,不过,向我提供了一个很有用的调试方法。他们怀疑与eclipse有关,叫我尽量让调试环境干净些。于是,我不在eclipse里启动tomcat, 只是直接在外部启动tomcat ,结果一切OK!
这下令我更纳闷了,为什么在eclipse里启动tomcat就会报类没有加载的错误了?这个问题弄得很烦,但也把我的脾气也搞来了,我发誓非要解决它不可。
这么多路走不通,再从哪里开始了? 我开始怀疑是tomcat plugin的问题,于是,我把它换成WTP plugin 。结果,一切OK !
为什么单独跑可以,在WTP环境里跑也可以,偏偏移到tomcat plugin里跑就不行了呢?于是,接着我开始怀疑是我操作系统的问题。我找同事借用了一下他们的机器,在他们的机器里在WTP 及tomcat plugin环境里也居然一切OK !
这时候,同事们都说是我的机器环境有问题。可是我的机器环境就有什么问题了。在他们的机器上跑程序时也是从我这里克隆的软件啊。于是,我开始反复比较同事机器与我机器上配置tomcat plugin环境在哪儿不同。最后,再经过努力,谜底终于揭开了:
在上图中,千万不要将cssweb前的勾勾上(因为我调试的是另外一个工程,这样导致eclipse加载的始终是cssweb工程里的JAR,于是,也就出现了找不到类的问题)
可以说,在调试这个问题的过程中极大的锻炼了我的心理素质,程序员的好脾气就是这样炼出来的吧!!!
分享到:
相关推荐
layui上传文件提示上传异常,实际文件已经上传成功 原因:上传回调的方法接收的参数应该是json格式的,之前返回的是String,所以一直走异常的方法 @ResponseBody @RequestMapping("/web/upload") public JSONObject ...
本教程将详细讲解如何在Android中捕获未被捕获的异常(Uncaught Exceptions)以及如何利用Retrofit网络库实现文件上传。 首先,我们来探讨如何在Android中实现异常捕获。Android系统提供了`Thread....
本项目聚焦于如何在Android应用程序中有效地捕获异常,并将其上传到Bugly这一第三方错误追踪平台。通过将异常处理模块化,开发者可以更方便地集成到自己的应用中,实现更高效、更系统的错误管理和分析。 首先,我们...
本文将深入探讨Struts2框架如何处理文件上传异常问题,并详细介绍其背后的实现机制。 #### Struts2框架与文件上传 Struts2本身并不直接支持文件上传功能,而是通过集成流行的文件上传框架(如Commons FileUpload、...
// 上传异常信息到服务器 } }); AlertDialog dialog = builder.create(); dialog.show(); ``` 4. **处理异常**:在点击“复制”按钮时,我们可以使用`ClipData`将异常信息复制到剪贴板;点击“报告”按钮,...
在这个主题中,我们将深入探讨Struts2如何实现单文件和多文件上传,并通过拦截器来处理可能出现的异常。 首先,我们来看单文件上传。在Struts2中,使用`<s:file>`标签可以创建一个用于选择文件的输入字段。用户选择...
在保存和上传异常信息时,应避免泄露用户敏感信息,如手机号、地理位置等。对日志进行适当的脱敏处理,遵循数据保护法规。 总结来说,通过自定义Crash Handler,我们可以有效地收集和处理Android应用的异常信息,将...
总的来说,捕获并上传Android应用中的异常需要创建一个自定义的`Application`,设置全局的`UncaughtExceptionHandler`,并实现异常收集、日志保存以及异常信息上传到服务器的逻辑。通过这种方式,开发者能够及时获取...
本文将深入探讨Android全局异常处理的实现方式,以及如何将异常信息存储本地并上传到服务器。 一、Android异常处理基础 在Android中,异常主要分为两种类型:未捕获异常(Uncaught Exception)和已捕获异常。未...
本主题将深入探讨Android全局异常捕获的机制,以及如何将捕获到的异常信息加密后上传到服务器。 首先,让我们了解如何实现全局异常捕获。在Android中,我们可以创建一个`Thread.UncaughtExceptionHandler`的实现类...
- 使用异步方式上传异常日志,避免阻塞主线程影响用户体验。 - 添加异常过滤器,排除某些不需要处理或已知的异常。 8. **多线程异常处理**: 注意,主线程和子线程的异常处理需要分别设置,因为每个线程都有自己...
"iOS开发异常捕获上传至邮箱"这个标题所涉及的知识点主要涵盖如何在iOS应用程序中实现异常监控、记录,并将捕获到的异常信息发送到指定的邮箱。下面我们将详细探讨这一过程。 1. **异常处理基础** - 在Objective-C...
错误spring boot上传文件错误The temporary upload location [/tmp/tomcat.******/work/Tomcat/localhost/ROOT] is not valid
本教程将详细讲解如何在Android中实现异常捕获并将其上传到服务器。 首先,我们来理解异常捕获的基本概念。在Java(Android的编程语言)中,异常是程序运行时发生的错误,如空指针异常(NullPointerException)、...
java * 文件上传 误异常类java * 文件上传 误异常类java * 文件上传 误异常类java * 文件上传 误异常类java * 文件上传 误异常类java * 文件上传 误异常类java * 文件上传 误异常类java * 文件上传 误异常类java * ...
接下来,描述中提到的“把对应的异常上传到服务器中查看”,这涉及到了远程日志管理和故障排查。开发者可以通过网络将这些日志文件发送到服务器,无论是局域网还是互联网上的服务器。这样,开发者可以在任何地方访问...
当检测到异常情况(如除零错误、空指针引用、数组越界等)时,不立即让程序终止,而是触发预设的异常处理代码,收集相关信息,如异常类型、堆栈跟踪等,并保存或上传到服务器。这样,即使在用户不知情的情况下,也能...
在Android应用开发中,异常处理是一项至关重要的任务,它能够确保程序在遇到错误时不会突然崩溃,而是能够优雅地处理并记录错误信息。本篇主要介绍如何实现一个全局的异常处理机制,以便将未处理的异常日志保存到...
在地球物理学中,重力异常是研究地球内部结构和矿产资源分布的重要手段。本项目主要探讨了如何使用Matlab来模拟均匀球体和长方体产生的重力异常。通过这种方式,我们可以理解不同地质体对地表重力场的影响,并进行...