0

我有一个由在 Java 1.5 上运行的 Weblogic 10 提供服务的小程序。我曾尝试使用 Java 1.6 和 Java 1.7 构建有问题的小程序,但两者都有相同的怪癖。

问题是,当客户端使用 JRE 1.7 运行小程序时,会以某种方式从完全不同的面板调用函数。我知道,这绝对没有意义,但事实就是如此。这是发生的事情:

用户加载应用程序并选择要使用的数据对象。此数据对象有两个面板,一个快速视图和一个详细视图。在详细视图中,用户可以更改对象资产值,但不能在快速视图中更改。如果他们尝试更改资产价值,则会出现“您确定吗?”的警报。因此,在快速查看时,他们将随机收到这些警报,以确保他们确实想要更改对象资产值,即使他们甚至不在屏幕上可能发生的事情。更糟糕的是,详细视图上的其他值会随机更改为零或空值,并且由于它们不需要确认,它会立即访问数据库。

请注意,我们公司有很多不同的 java 应用程序,只有一个有这个问题。我们要求我们的用户不要安装 java 1.7,但每隔一段时间就会有人这样做,这个应用程序就会中断。然后我们必须去删除 1.7,然后安装 1.6,一切都很好。

我试过调试这个,但在任何地方都找不到任何东西。另外,我不是该应用程序的作者,我只是负责寻找解决方案。任何帮助将不胜感激,甚至是关于在哪里查看或如何正确调试的一些想法。

4

1 回答 1

1

请注意,我最近在小程序上做的不多。

小程序具有以下范围的方法:

{ init { start; stop } destroy }

开始/停止范围涉及呈现的 HTML 页面。

我的猜测是,init发生了太多事情,或者static使用了字段。

你可以扩展旧的小程序,使用init一个空的init,并在start调用super.init(). 同样对于stop/ destroy

javap例如可以看到静态字段。那么你确实需要重写,但是静态字段对于小程序来说是绝对不行的。

appletviewer可以从 JDK 的 bin 目录中测试小程序。

于 2013-01-15T17:23:58.483 回答