我们使用来自签名提供商的一些专有小程序来签署一些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>
答案 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版本之间