2016-05-21 4 views
0

Я хотел бы получить конечный автомат из .uml-файла, созданного papyrus. Я разбираю файл model.uml, используя приведенный ниже код.UMLPackage.Literals.MODEL throws java.lang.NoClassDefFoundError error

ResourceSet set = new ResourceSetImpl(); 
set.getResourceFactoryRegistry().getExtensionToFactoryMap() 
    .put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE); 
set.getResourceFactoryRegistry().getExtensionToFactoryMap() 
    .put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE); 
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap() 
    .put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE); 
Resource res = set.getResource(URI.createFileURI("resources/model.uml"), true); 
EcoreUtil.resolveAll(res); 
System.out.println(res.getContents().get(0)); 

Этот код отлично работает и печатает содержимое. Но когда я пытаюсь бросить его в класс модели, используя код ниже

Model model = (Model) EcoreUtil.getObjectByType(res.getContents(),UMLPackage.Literals.MODEL); 

Он бросает это исключение,

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/uml2/types/TypesPackage 
at org.eclipse.uml2.uml.internal.impl.UMLPackageImpl.init(UMLPackageImpl.java:1907) 
at org.eclipse.uml2.uml.UMLPackage.<clinit>(UMLPackage.java:83) 
at org.eclipse.uml2.uml.UMLPackage$Literals.<clinit>(UMLPackage.java:28779) 
at mp.m2bt.BTGenerator.main(BTGenerator.java:49) 
Caused by: java.lang.ClassNotFoundException: org.eclipse.uml2.types.TypesPackage 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 

Я не уверен, если я что-нибудь не хватает. Я думаю, проблема в UMLPackage.Literals.MODEL. Итак, может ли кто-нибудь помочь мне исправить эту проблему и получить государственные машины из модели.

ответ

0

Вам нужна банка org.eclipse.uml2.types в вашем пути к классу. Вот почему тип org.eclipse.uml2.types.TypesPackage не найден.