2009-07-23 72 views
9

最近我们的两个客户报告了我们的小程序问题。看着java插件控制台,它充满了ClassNotFoundException,因此我们的代码都没有执行。如何调试/记录/跟踪小程序加载问题?

我已经能够使用磁盘上有0个可用空间的虚拟pc映像重现堆栈跟踪,但是当我还原一些磁盘空间时问题消失,并且用户告诉我他们的磁盘未满;他们能够创建新文件。

我们的小程序需要Java 6,有这样的问题出现了更新1,10和JRE的14。我们也尝试了不同的浏览器(IE和Firefox),清除浏览器和java缓存,...

如何调试或追踪jvm如何加载我们的小程序?

我想,问题就出在Windows上一些安全指令,所以我使用Sysinternal的进程监视器记录活动,但我真的不知道去哪里看。

回答

0

我一直在寻找JDK的插件源,我发现日志中有其他可用的调试信息,设置环境变量JPI_PLUGIN2_DEBUG。 不幸的是我仍然只能看到ClassNotFound的例外。

我已经找到了一个燕子所有异常插件代码的,所以也许我的用户的问题是有...

6

Java高速缓存是最有可能搞砸了。在控制面板中打开Java并删除所有临时文件以查看它是否消失。

Java控制台登录加载小程序可以被启用,这有助于相当很多(即使该插件是非常难以理解)。请参阅http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/tracing_logging.html

+0

谢谢!我忘了在我的磁盘完整测试环境中启用跟踪。 现在我试过了,但它只显示'java.io.IOException:写入错误'。 没有什么路径试图写或错误的原因的细节,所以我认为它不会提供足够的信息,如果我们使客户端PC的跟踪。 这是追踪我们可以从JVM获得的最大值吗? – Serxipc 2009-07-24 08:59:41

+0

清理java缓存有助于您的用户吗? – 2009-07-24 09:40:07

+0

不。我们已经尝试从java控制面板清除java缓存,并从temp目录中删除所有jar_cache * .tmp文件。我想这是一些窗口或网络安全指令,但我不知道要继续哪里,所以我试图获取有关正在发生的事情的详细日志。 – Serxipc 2009-07-24 09:56:58

0

过类似的问题在不久前。在我们的案例中,问题似乎是applet标签在网页上的设置方式。如果它的顺序错误或包含codebase属性,则它将以6u10 +失败。这适用于我们:

<applet name="DMGANTT" archive="DMGantt.zip" code="dm.applet.DMGanttApplet" 
width='100%' height='100%' mayscript="mayscript"> 
+0

我使用deployJava.js脚本编写applet标记,并且不添加代码库属性。 属性如何以错误的顺序?你有没有因为蠕虫订单而失败的例子? – Serxipc 2009-07-28 09:51:36

+0

是的,如果我更改代码和归档顺序,6u10以某种方式在服务器上搜索DMGanttApplet,而不是在提供的归档中搜索。缺少哪些类 - 错误的堆栈跟踪是什么? – akarnokd 2009-07-28 10:21:59

+0

我试过你的建议与属性顺序,但问题依然存在。堆栈跟踪中找不到的类是在code属性中指定的类,因此没有任何操作被执行。我可以在服务器日志中看到具有该类的jar被请求。事实上,jar被请求的次数与页面中applet的次数相同,但是当从一台运行的pc上查看页面时,它只会被请求一次。 – Serxipc 2009-07-28 13:24:54

0

我们有一个类似的问题,我们的客户之一。我们发现它在某些版本的Java中与客户端上的代理配置相关的是一个奇怪的错误。看到这篇文章的细节

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6723715

此外,我们的小程序出于不同的原因新版本的失败。

现在,在类似的情况下,我请他们检查javatester.org,让我可以看到,如果小程序(一般)负载确定在自己的浏览器。如果该页面加载OK,则它在我们的小程序(或页面)上存在问题。否则这是他们配置中的问题。无论如何,我都会帮助他们,但调试起来更容易。