applet无法从jar加载类

有些用户抱怨applet不再有效,当他们查看java控制台时,他们会遇到java.lang.noClassDefFoundError并检查我的访问日志,我看到他们已经下载了包含该类的jar文件,然后发出了get请求特定的课程。

不同的用户打破不同的类。

有些用户很好。

任何想法可能导致这个/解决这个问题。

我已经检查过以确保文件在他们的java缓存中,清除了缓存等。似乎没有什么能解决它们。

如果他们打到qa网站,它也会破坏。

jar正在传输中被破坏,我们正在寻找从服务器的oracle / bea获取补丁。

看来,如果连接速度太慢(调制解调器速度),weblogic将通过发送len = 0的数据包来指示传输结束。

网络将通知java表示下载已成功完成,然后java失败并出现java.lang.noClassDefFoundError。

如果可以加载类本身但是该类的某些依赖性不能,则会发生这种情况。 是否存在依赖的外部JAR?

你确定jar文件包含所有必要的类吗? 在您最喜爱的Zip应用程序中打开它并仔细检查。 也许这个jar子的最近版本搞砸了,并没有包含所有内容。

我假设你的措辞已经做了一些更新。 某些用户很可能已缓存了之前的Jar文件。

在实时配置中部署新的applet版本时,我执行以下操作:

  1. 确保不缓存包含applet的页面 – 使用HTTP no-caching技术 。 您可能希望从包含这些标头的新页面重新部署,以确保不是这种情况。
  2. 为每次更新从不同的URL部署jar文件(我在目录中编码版本号,但您可以同样重命名jar文件)。
  3. 如果applet执行任何客户端服务器交互,请确保检查版本号并向用户报告不正确的版本。

即使您遵循此操作,用户可能仍然遇到问题,请他们一次尝试这些问题(按照他们应该尝试的顺序列出):

  1. 按浏览器窗口上的刷新。
  2. 重启所有浏览器窗口
  3. 卸载“添加/删除程序”中找到的所有 Java VM并重新安装最新的Java(是的,他们必须自行承担风险!)