【发布时间】:2012-08-06 14:08:27
【问题描述】:
所以我在打开 JFrame 时有点麻烦。我在网上广泛搜索,但我真的找不到解决方案......
我解释了情况:
我需要开发一个应用程序,该应用程序需要检索信息跟踪应用程序,同时满足新的安全标准。为此,我使用了允许监控的 JMX 和 VisualVM 来查看这些信息。
因此,自 VisualVM 以来,我可以毫无问题地(最近 ^ ^)连接到 JMX。
因此,VisualVM 插件中有一个用于恢复 MBean 上的信息,包括方法上的信息(插件中的操作选项卡)。 这允许停止服务或创建事件。
当我尝试显示统计结果时,我的问题就出现了。 事实上,我必须通过单击“操作”中方法列表中的按钮来显示一个带有 HTML 表格(标题、颜色和其他所有内容)的窗口。
为此,我使用 JFrame:
public JFrame displayHTMLJFrame(String HTML, String title){
JFrame fen = new JFrame();
fen.setSize(1000, 800);
fen.setTitle(title);
JEditorPane pan = new JEditorPane();
pan.setEditorKit(new HTMLEditorKit());
pan.setEditable(false);
pan.setText(HTML);
fen.add(pan);
return fen;
}
我在我的方法中调用它:
public JFrame displayHtmlSqlStatOK_VM(){
return displayHTMLJFrame(displaySQLStat(sqlStatOK, firstMessageDate), "SqlStatOK");
}
因此,该方法必须将我的 JFrame 还给我,但她会产生错误:
Problem invoking displayHtmlSqlStatOK_VM : java.rmi.UnmarshalException: error unmarshalling return; nested
exception is:
java.io.InvalidClassException: javax.swing.JFrame; local class incompatible: stream classdesc serialVersionUID =
-5208364155946320552, local class serialVersionUID = -2386951414768123374
我在网上看到这是一个版本问题(序列化),我坚信它来自于我有这个的事实:
服务器 - JDK5 客户端(VisualVM) - JDK6
知道我不能像某些网站和论坛所提倡的那样更改服务器版本(成本太重要了......)。
我的问题如下:
我可以显示这个该死的窗口来保持我当前的架构(JDK5 服务器端和客户端 JDK6)吗?
我可以强迫这个问题吗?告诉他没有什么不好的东西可以运行我的代码?最后我问他,但他没有回答我,也许他会告诉你……(是的,我破解了^^)。
非常感谢那些阅读我并帮助我的人!
如果您需要更多信息,请不要犹豫。
编辑
我的问题的解决方案可能在其他地方,因为实际上我只想要一个格式最少的表格(这只是为了查看一个官员的应用程序让他的小表格他可能将关键数据用红色... )。
但是我在任何地方都找不到可以使用 VisualVM 返回的类型列表……不过,这对我来说似乎并不过分。
后来我想到了一个备份解决方案,那就是创建一个临时的HTML文件并在浏览器中自动打开它,但之后可能不是很干净......但如果它可以工作^^
我对任何研究领域都持开放态度!
【问题讨论】:
标签: serialization jframe java jmx visualvm