八进制

少年壮志无烟抽

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  244 随笔 :: 0 文章 :: 3241 评论 :: 14 引用

今天用EclipseUML画类图遇到一个很郁闷的问题,为了保险起见我还是边画边保存的,画了一上午,有一次关闭了编辑器,再想打开时提示“Impossible to load the diagram xxx.ecd”。我这汗一下子就下来了,一上午的工作啊!赶紧查看一下Eclipse的errorlog,异常信息如下:

java.lang.NullPointerException
    at com.omondo.uml.obf.cba.setInput(SourceFile:
1153)
    at com.omondo.uml.obf.cba.init(SourceFile:
1109)
    at com.omondo.uml.emf.ClassDiagramEditor.init(SourceFile:
1013)
    at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:
784)
    at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:
585)
    at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:
374)
    at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:
552)
    at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:
285)
    at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:
140)
    at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:
264)
    at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:
65)
    at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:
394)
    at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:
1140)
    at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:
1093)

找不到任何与类图有关的信息,试着修改.ecd和.ecore文件,几次均没有效果。想到昨天晚上做过备份(万幸),只好恢复到那时的类图重新画。画完了保存,试着关闭编辑器再打开,竟然又提示“Impossible to load the diagram xxx.ecd”!!

我快不行了,最后的办法,边画边保存边备份,想看看到底是什么操作引起的这个问题。终于找到根源了,原来是我定义了一个名为Operator的Enumeration,里面有“+”、“-”、“*”和“/”四个枚举项,其中的“/”号会引起.ecd文件失效,我猜想是没有转义的缘故,EclipseUML会把它认作分隔符。

最后建议大家一定要像对自己的眼睛一样爱护自己的模型,经常备份是非常必要的,现在免费的图形化编辑器普遍都不是很稳定。

posted on 2006-02-21 11:55 八进制 阅读(2809) 评论(15)  编辑 收藏 网摘 所属分类: EclipseEMF

评论

EclipseUML建模太令人发汗了,我以前也试过,还是用rational rose吧。
  回复  引用    

如果用ROSE建模、画UML图,当然稳定又方便,但是将ROSE文件导入EMF工程时稍微复杂一点的模型就导不进去。且ROSE提供的将模型导成XMI文件的插件也有问题,复杂一点的模型就导出失败,郁闷!有好办法吗?
  回复  引用    

#3楼 2006-02-23 13:34 outiejun[未注册用户]
对于rose针对EMF建模,在EMF帮助里面有个规范,多复杂的模型也没问题。但rose导出XMI到没试过,这个不知道。
  回复  引用    

#4楼[楼主] 2006-02-24 15:47 八进制      
没有用rose主要是两个原因:一是rose不免费,二是只能在windows下用。ibm收购rational以后倒是出来不少基于eclipse的rose工具如ria,没有尝试过,所以暂时用EclipseUML,基本满足需要,只是要注意经常备份。
  回复  引用  查看    

#5楼 2006-03-29 02:38 steinn[未注册用户]
不知道谁用过Visual paradigm没有,据说还是香港的一家公司做的,它提供了一个eclipse Plugin(SDE)可以直接eclipse里画uml图,但是就是不知道怎么样由图形生成EMF .ecore 的文件????
  回复  引用    

#6楼[楼主] 2006-03-31 22:15 八进制      
能画uml图的工具一般都能导出为.xmi格式吧,可以把.xmi格式导入到rose里生成.mdl文件,就能生成.ecore了。哦,好像比较麻烦……
  回复  引用  查看    

#7楼 2006-04-13 14:44 cupea[未注册用户]
从replace from histroy
可以恢复以前的内容呀

  回复  引用    

#8楼 2007-03-30 16:26 m.guo[未注册用户]
@cupea
厉害,我刚才看过了,好像 真的有门。。。。。
不过我还没试过。

  回复  引用    

安装eclipseUML时有下面的要求:
The following Eclipse plugins are required in order to install the EclipseUML plugin :
• GEF (Graphical Editor Framework) build GEF-ALL-3.1 (provided with the EclipseUML plugin)
• EMF (Eclipse Modeling Framework) build emf-sdo-xsd-SDK-2.1.0 (http://www.eclipse.org/emf)
• UML2 build uml2-SDK-1.1 (http://www.eclipse.org/uml2)
是不是应该GEF不用安装,但我看其他网站上说需要安装GEF,其他二个不需要,然而这样不行。我现在机器安装了GEF3.1 ,UML2-sdk-1.1.1,emf-sdo-xsd-SDK-2.1.0,不能创建类图,在点击最后的finish时没有反映。(我曾经试着卸载掉其中的UML2-sdk-1.1.1,emf-sdo-xsd-SDK-2.1.0,仍然还是不成功。一直看你的bolg,非常敬佩,也希望知道这个问题的帮帮我。多谢!
另外建立EMF类图是可以的。

  回复  引用    

另外,我创建EMF类图的时候,怎么不能和添加属性,怎么创建?能帮帮我吗?
非常郁闷!
添加enumration时,无法添加literal,点击add没有反应,是不是我装的版本不对?
纠正:
我现在机器安装了GEF3.1 ,emf-sdo-xsd-SDK-2.1.0,不能创建类图,在点击最后的finish时没有反映。UML2-sdk-1.1.1没有安装,安装他就出现错误。
盼各位帮忙回复!

  回复  引用    

#11楼[楼主] 2007-04-11 16:03 八进制      
eclipseUML自带了EMF和GEF,安装时可以选择是否安装自带的EMF和GEF(好象还有UML2),如果你的Eclipse已经有了这些就可以不装。如果不确定,你可以下载和你的eclipseUML版本匹配的Eclipse,然后直接安装eclipseUML并安装它带的全部这些插件,这样应该没有问题,前提是eclipse和eclipseUML版本匹配,eclipseUML下载页面应该有说明。
  回复  引用  查看    

@八进制
谢谢你的回答。
安装过程中并没有让我选择是自己的emf还是自带的,装不装EMF和GEF都没有问题,但是装上UNM2-sdk就出错。
我安装的eclipseUML版本要求eclipse3.1,我使用的是3.2应该也可以吧。
我再努力!
谢谢你。


  回复  引用    

#13楼[楼主] 2007-04-11 22:30 八进制      
Eclipse 3.2应该不行,使用时会出现一些问题。
  回复  引用  查看    

八进制你好:
最近看了一些EMF、GEF和GMF的资料,搞得晕头转向,向你请教几个问题。
EMF是实现了模型驱动开发,我看到大部分使用EMF的是UML或者Eclipse自己的工程,我想知道我们自己一般什么时候能用到它,就是说什么情况下能使用它,目前它的主要用户是那些人,做什么的?

我目前想做一个可视化开发的项目,想知道EMF是开源的吗?我安装EclipseUML后,可以创建EMF和UML类图了,那么这个2个应该都是建模工具了,想知道他们的区别是什么?
我能自己在EMF类图的基础上,比如创建一个奇怪的图形吗?我想自己创建一套图形表述十五逻辑,然后能生成代码?

请你给点建议!谢谢你,谢谢你的Blog。

  回复  引用    

#15楼[楼主] 2007-04-13 16:01 八进制      
EMF可以用在任何项目,现在大多数都是用在开发Eclipse插件里。EMF是开源的。我用EclipseUML只是用来创建EMF类图,可以得到.ecore文件。它的UML功能应该是生成uml模型的,Eclipse的UML2项目是基于EMF项目的,UML2的元模型也是通过扩展ecore模型得到的。
  回复  引用  查看    

发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 334635


相关文章:

相关链接: