很好,我发现自己很棒:)
谢谢你,再见!
…………
开个玩笑当然我会给出我找到的解决方案^ ^
所以这就是我所做的:
我要在客户端上完成的显示(正常......)我的代码显示了我在服务器上设置的 JFrame 明显显示......在服务器上 xD
我不想改变客户 (VisualVM) 以允许用户最大的灵活性。但是我意识到,要显示我的 HTML 表以使其可用(使用颜色和所有内容),我必须更改客户端(因为 JMX 不支持 JFrame 类型作为返回操作的类型)。
我的操作是从 VisualVM 的 MBeans 插件运行的,我有必要找到它的源代码说“如果你看到我给你的 HTML 你在 JFrame 中显示它,请小心”。
这是我的方法:
- 获取资源
SVN获取VisualVM源码的链接如下:
https://svn.java.net/svn/visualvm~svn/branches/release134
如果像我一样,您在使用 NetBeans 中包含的 SVN 客户端时遇到问题,因为您在代理后面,您可以通过命令行来完成:
svn --config-option servers:global:http-proxy-host=MY_PROXY_HOST --config-option servers:global:http-proxy-port=MY_PROXY_PORT checkout https: //svn.java.net/svn/visualvm~svn/branches/release134 sources-visualvm
当然是把你放在你的目标文件夹(cd C:\Users\me\Documents\SourcesVisualVM 例子)。
- 添加平台 VisualVM
NetBeans 需要 VisualVM 平台为其创建模块(插件)。为此,请转到“工具”->“NetBeans 平台”。
然后点击窗口左下方的“Add Platform ...”,选择下载到这个地址的bin文件夹:http://visualvm.java.net/download.html
你应该有这个:
http://img15.hostingpics.net/pics/543268screen1.png
- 在工作区中添加源 (NetBeansProjects)
将下载的源代码(来自上述链接的 SVN)复制/粘贴到您的 NetBeans 工作区(默认情况下位于 C:\Users\XXX\Documents\NetBeansProjects)。
- Ouverture du projet du plugin MBeans
在 NetBeans 中,右键单击 Project Explorer(或转到菜单“Files”)并单击“Open Project ...”。然后,您将在工作区中拥有一个项目列表。打开“release134”->“Plugins”中的项目“mbeans”,如下:
http://img15.hostingpics.net/pics/310487screen2.png
- 更改文件“platform.properties”
要构建插件,您必须为您的平台定义一些变量。为此,请打开工作区目录release134\plugins\nbproject中的文件platform.properties。替换内容(通过更改与您相比的路径):
cluster.path=\
C:\\Program Files\\java6\\visualvm_134\\platform:\
C:\\Program Files\\java6\\visualvm_134\\profiler
# Deprecated since 5.0u1; for compatibility with 5.0:
disabled.clusters=
nbjdk.active=default
nbplatform.active=VisualVM_1.3.4
suite.dir=${basedir}
harness.dir= C:\\Program Files\\NetBeans 7.1.2\\harness
- 更改类 XMBeanOperations
要添加我们的功能(显示 HTML 表格),您必须更改处理操作的类,即com.sun.tools.visualvm包中的XMBeanOperations类。模块.mbeans。
在第 173 行,替换:
if (entryIf.getReturnType() != null &&
!entryIf.getReturnType().equals(Void.TYPE.getName()) &&
!entryIf.getReturnType().equals(Void.class.getName()))
fireChangedNotification(OPERATION_INVOCATION_EVENT, button, result);
经过 :
if (entryIf.getReturnType() != null &&
!entryIf.getReturnType().equals(Void.TYPE.getName()) &&
!entryIf.getReturnType().equals(Void.class.getName())) {
if (entryIf.getReturnType() instanceof String) {
String res = result + "";
if (res.indexOf("<html>") != -1) {
JFrame frame = displayHTMLJFrame(res, button.getText());
frame.setVisible(true);
}
else
fireChangedNotification(OPERATION_INVOCATION_EVENT, button, result);
} else
fireChangedNotification(OPERATION_INVOCATION_EVENT, button, result);
}
使用您放置在“void performInvokeRequest(最终 JButton 按钮)”上方的创建 JFrame 的方法,例如:
// Display a frame with HTML code
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;
}
我们可以看到我们已经对返回类型进行了测试,如果它是一个返回的字符串,如果是这样,如果我们在这个字符串中看到 balise ,那么我们通过打开一个 JFrame 来替换点击的结果您输入的字符串,是什么让我们显示我们的 HTML 代码!
- 创建一个 .nbm
.nbm 文件是插件的部署文件。只需右键单击您的项目(在项目资源管理器中),然后单击“创建 NBM”。您的文件 .nbm 将在项目根目录的“build”文件夹中创建。
- 在 VisualVM 中安装插件
要安装你的插件,你必须进入 VisualVM,进入“工具”->“插件”选项卡,然后“下载”,点击“添加插件...”。选择您的插件 .nbm,然后单击“安装”。然后按照说明进行操作。
有用的资源
http://docs.oracle.com/javase/6/docs/technotes/guides/visualvm/
http://visualvm.java.net/"]http://visualvm.java.net/
http://visualvm.java.net/api-quickstart.html (Créer un plugin VisualVM avec NetBeans)
非常感谢您的帮助 Tomas Hurka ;)