Java Applet最新JRE(7.55+)的奇怪性能行为

时间:2014-06-11 10:03:48

标签: java applet

我们使用来自签名提供商的一些专有小程序来签署一些XML。当我们使用JRE 6u37 applet运行没有问题 - 运行速度非常快,从不冻结。但是当我们将JRE更新为7u55或更新时,它经常开始挂起。只有浏览器重启帮助。有没有办法解决这个问题可能是由某些参数或其他东西?

这是运行代码:

<script>
    var attributes = {codebase:'#{request.contextPath}/distr',
                      code:'kz.softkey.iola.applet.MainApplet',
                      archive:'iolaApplet.jar',
                      type:'application/x-java-applet',
                      mayscript:'true',
                      id:'iolaApplet',
                      name:'iolaApplet',
                      width:1, height:1} ;
    var parameters = {code:'kz.softkey.iola.applet.MainApplet', 
                    codebase:'#{request.contextPath}/distr',
                    archive:'iolaApplet.jar',
                    cache_option:'Plugin',
                    cache_archive:'iolaApplet.jar',
                    mayscript:'true',
                    scriptable:'true',
                    fileExtension:'KEYSTORE',
                    cache_archive:'iolaApplet.jar',
                    java_arguments:'-Xmx300m',
                    writesoap:'false';
    var version = '1.6';
    deployJava.runApplet(attributes, parameters, version);
</script>

1 个答案:

答案 0 :(得分:2)

在版本7和版本6之间,jre中的applet实现有一些小的变化。我发现当我的团队将一些旧项目从6迁移到7时,在少数情况下,当用户尝试修改内容时,applet开始挂起。在我的情况下,更改是表如何处理firePropertyChange,当用户在单元格无限循环中发生更改时。如果您无法访问来源,我认为您无法检查导致问题的原因。

//修改

我没有看到您调用部署脚本中的任何方法来将数据从站点添加到applet,因此我假设您应该能够像正常应用程序一样从IDE运行它。 如果序列化一些数据并将其发送到applet,则需要找到在applet本地运行时在applet上加载数据的方法。 在我的情况下,我们使用自定义序列化器进行数据,我们创建了一些用于测试的实用程序,我们将序列化数据放在txt文件中并在本地运行applet(从IDE)。 这样就可以像任何其他应用程序一样调试applet。 当你改变jre时调试applet很难,因为你通常不知道app的流程何时出错。 在我的情况下,我们最终坐在两个屏幕之前,两个applet在两个版本的java上运行,并逐行比较applet的流量。 他这样坐了一段时间,我们发现了一些微小的变化(我不会完全记得,但我很确定它是一个&#39;如果&#39;它改变了,这是我们问题的原因)在java版本之间