Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在RationalSoftwareArchitect中打开UML模型时发生异常_Java_Uml_Rational Rsa - Fatal编程技术网

Java 在RationalSoftwareArchitect中打开UML模型时发生异常

Java 在RationalSoftwareArchitect中打开UML模型时发生异常,java,uml,rational-rsa,Java,Uml,Rational Rsa,我对RationalSoftwareArchitect8.0有一个问题。我正在开发一个插件,为模型提供一些额外的功能。我正在尝试编写单元测试,以确保我的插件按预期运行 作为其中一些测试的一部分,我需要打开一个UML模型(emx格式)并对其执行一些操作。为此,我使用com.ibm.xtools.modeler.ui.UMLModeler.openModelResource(..),但它引发了一个奇怪的异常。以下是代码片段: Element root = null; try { root =

我对RationalSoftwareArchitect8.0有一个问题。我正在开发一个插件,为模型提供一些额外的功能。我正在尝试编写单元测试,以确保我的插件按预期运行

作为其中一些测试的一部分,我需要打开一个UML模型(emx格式)并对其执行一些操作。为此,我使用
com.ibm.xtools.modeler.ui.UMLModeler.openModelResource(..)
,但它引发了一个奇怪的异常。以下是代码片段:

Element root = null;
try {
    root = UMLModeler.openModelResource(fileName);
} catch (IOException e) {
    System.out.println("Error while opening model " + fileName + ": " + e.getMessage());
}
return root;
下面是引发的异常:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:222)
    at org.eclipse.gmf.runtime.emf.core.internal.domain.MSLEditingDomain$MSLResourceSet.addURIHandlers(MSLEditingDomain.java:2282)
    at org.eclipse.gmf.runtime.emf.core.internal.domain.MSLEditingDomain$MSLResourceSet.<init>(MSLEditingDomain.java:2315)
    at org.eclipse.gmf.runtime.emf.core.internal.domain.MSLEditingDomain.<init>(MSLEditingDomain.java:255)
    at org.eclipse.gmf.runtime.emf.core.internal.domain.MSLEditingDomain.<init>(MSLEditingDomain.java:234)
    at org.eclipse.gmf.runtime.emf.core.edit.MEditingDomain.createDefaultEditingDomain(MEditingDomain.java:112)
    at org.eclipse.gmf.runtime.emf.core.edit.MEditingDomain.<clinit>(MEditingDomain.java:70)
    at java.lang.J9VMInternals.initializeImpl(Native Method)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
    at org.eclipse.gmf.runtime.emf.core.util.ResourceUtil.findResource(ResourceUtil.java:163)
    at com.ibm.xtools.modeler.ui.UMLModeler.openUMLResource(UMLModeler.java:1144)
    at com.ibm.xtools.modeler.ui.UMLModeler.openModelResource(UMLModeler.java:451)
    at uk.ac.open.rbacuml.dsml.plugin.research.fixing.SSoDConstraintFixingTest.loadModel(SSoDConstraintFixingTest.java:23)
    at uk.ac.open.rbacuml.dsml.plugin.research.fixing.SSoDConstraintFixingTest.testSSoDConstraintFixing(SSoDConstraintFixingTest.java:32)
    at uk.ac.open.rbacuml.dsml.plugin.research.fixing.SSoDConstraintFixingTest.main(SSoDConstraintFixingTest.java:17)
Caused by: java.lang.NullPointerException
    at org.eclipse.gmf.runtime.common.core.util.Log.<clinit>(Log.java:42)
    at java.lang.J9VMInternals.initializeImpl(Native Method)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
    ... 14 more
线程“main”java.lang.ExceptionInInitializeError中的异常 在java.lang.J9VMInternals.initialize(J9VMInternals.java:222)中 位于org.eclipse.gmf.runtime.emf.core.internal.domain.MSLEditingDomain$MSLResourceSet.addURIHandlers(MSLEditingDomain.java:2282) 位于org.eclipse.gmf.runtime.emf.core.internal.domain.MSLEditingDomain$MSLResourceSet。(MSLEditingDomain.java:2315) 位于org.eclipse.gmf.runtime.emf.core.internal.domain.MSLEditingDomain.(MSLEditingDomain.java:255) 位于org.eclipse.gmf.runtime.emf.core.internal.domain.MSLEditingDomain.(MSLEditingDomain.java:234) 位于org.eclipse.gmf.runtime.emf.core.edit.MEditingDomain.createDefaultEditingDomain(MEditingDomain.java:112) 在org.eclipse.gmf.runtime.emf.core.edit.MEditingDomain.(MEditingDomain.java:70) 位于java.lang.J9VMInternals.initializeImpl(本机方法) 在java.lang.J9VMInternals.initialize(J9VMInternals.java:200)中 位于org.eclipse.gmf.runtime.emf.core.util.ResourceUtil.findResource(ResourceUtil.java:163) 位于com.ibm.xtools.modeler.ui.UMLModeler.openUMLResource(UMLModeler.java:1144) 位于com.ibm.xtools.modeler.ui.UMLModeler.openModelResource(UMLModeler.java:451) 位于uk.ac.open.rbacuml.dsml.plugin.research.fixing.SSoDConstraintFixingTest.loadModel(SSoDConstraintFixingTest.java:23) 在uk.ac.open.rbacuml.dsml.plugin.research.fixing.SSoDConstraintFixingTest.testSSoDConstraintFixing(SSoDConstraintFixingTest.java:32) 位于uk.ac.open.rbacuml.dsml.plugin.research.fixing.SSoDConstraintFixingTest.main(SSoDConstraintFixingTest.java:17) 原因:java.lang.NullPointerException 位于org.eclipse.gmf.runtime.common.core.util.Log.(Log.java:42) 位于java.lang.J9VMInternals.initializeImpl(本机方法) 在java.lang.J9VMInternals.initialize(J9VMInternals.java:200)中 ... 14多
我显然做错了什么,但我不知道是什么。有什么建议吗?

模型资源应在UMLModeler的编辑域中打开:

UMLModeler.getEditingDomain().runExclusive(new Runnable() {
    public void run() {
        Element root = null;
        try {
            root = UMLModeler.openModelResource(fileName);
        } catch (IOException e) {
            System.out.println("Error while opening model " + fileName + ": " + e.getMessage());
        }
    }
});