我试图制作我的第一个Rhapsody插件,到目前为止,我设法使该插件出现在“工具”选项卡下。

到目前为止,我已经在项目中编写了此文件,但“日志”选项卡保持不变

    @Override
public void RhpPluginInit(IRPApplication rpyApplication) {
    IRPApplication rpy = RhapsodyAppServer.getActiveRhapsodyApplication();
    rpy.writeToOutputWindow("Log", "test\n");

}


我的.hep文件看起来像这样

MyPluginProfile.hep:

[Helpers]
numberOfElements=2
name1=MyPlugin
JavaMainClass1=Pack.MyPlugin
JavaClassPath1=D:\Work\eclipseWS\rhapsodyIntegr
isPlugin1=1
isVisible1=1
DLLServerCompatible1=1

name2=Invoke MySimplePlugin
isPluginCommand2=1
command2=MyPlugin
applicableTo2=ObjectModelDiagram
isVisible2=1
applicableToProfile1=SimplePluginProfile
DLLServerCompatible2=1


然后从文件>项目属性>属性选项卡>选定的“查看按“帮助程序”过滤的视图”>帮助程序文件中,将其导入Rhapsody。在那里,我给出了MyPluginProfile.hep的完整路径。

最后,我有两个问题:


为什么Rhapsody的“日志”选项卡中没有显示该消息?
如果我修改了该消息,则必须重新加载帮助程序才能看到更改?如果是,我该如何正确执行?


谢谢,
丹尼尔

最佳答案

丹尼尔
  不要仅仅因为在Rhapsody GUI的“工具”菜单下有一个条目就认为插件可以正常工作。如果Rhapsody加载插件有任何问题,“工具”菜单中的条目仍会显示,但插件仍可能损坏。解决问题的最佳方法是更新Rhapsody.ini文件,并添加一个条目,告诉Rhapsody调试插件活动。在[常规]部分中,输入以下内容:

[一般]
JavaAPILogFile = c:\ temp \ rhap814.log

然后,重新启动Rhapsody并重新加载模型。 (顺便说一句,我假设您有一个相应的.sbs文件,其名称与您的.hep文件的名称相匹配,并且您已经“添加到该模型”该.sbs概要文件中。)然后查看该日志文件以查看可能是什么问题。 。通常是类路径错误。您可以通过两种方式指定插件.class文件的位置,即目录还是jar文件。您的hep文件未在JavaClasspath1属性中指定.jar文件,因此我认为它是前者。如果创建了.jar文件,则需要将该文件附加到JavaClasspath1属性值。

重要说明:使插件正常工作后,请删除Rhapsody.ini中的JavaAPILogFile条目(或者,在分号前面加上分号“;”更好)。否则,您会看到插件性能下降10倍。另外,在第二个帮助器中检查您的“ applicableToProfile1”条目。那末应该有一个“ 2”,而不是“ 1”。


是的,遗憾的是,每次更改插件代码时,都需要重新启动Rhapsody。


为了进行更精确的调试,请将此条目添加到[JVM]部分中的rhapsody.ini文件中:

对于使用Eclipse进行调试:

[JVM]
Options=ClassPath,LibPath,MaxHeap,MaxStack,EclipseDebug
EclipseDebug=agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y


或用于JDB调试:

Options=ClassPath,LibPath,MaxHeap,MaxStack,JDBDebug
JDBDebug=-agentlib:jdwp=transport=dt_shmem,address=jdbconn,server=y,suspend=y

关于java - 当我使用Java API从插件打印时,IBM Rhapsody Log为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51476211/

10-11 00:39