2010-11-01 20 views
0

J'ai généré des classes en utilisant EMF et maintenant je veux les instancier. J'ai créé les fichiers xmi associés au modèle et au métamodèle. Maintenant, je veux charger le modèle en tant qu'instance dans mon programme, mais il continue à lancer une exception NullPointerException.Qu'est-ce que NS URI dans EMF?

Mon code est:

Map<String,Object> registry = EPackage.Registry.INSTANCE; 
String workflowURI = ExcelEditorPackage.eNS_URI; 
System.out.println(workflowURI); 
ExcelEditorPackage wfPackage = (ExcelEditorPackage) registry.get(workflowURI); //throw NPE here 
ExcelEditorFactory wfFactory = wfPackage.getExcelEditorFactory(); 
Page workflow = wfFactory.createPage(); 

Il jette un à wfFactory parce wfPackage est nulle. Mon NS URI est "http://www.sg/model" (cette URL n'existe pas).

Répondre

0

NS URI signifie l'espace de noms URI. C'est l'équivalent xml des paquets dans Java. Apparemment, le moteur d'exécution EMF ne peut pas charger le package associé à l'URI que vous avez spécifié. Vérifiez si l'URI que vous spécifiez est correcte.

0

Il lance wfFactory parce que wfPackage est null.

Si le NPE est vraiment jeté à la ligne que vous indiquez, il ne peut pas se produire parce quewfPackage est null. En fait, il doit indiquer que registry est null.

Mon NS URI est "http://www.sg/model" (cette URL n'existe pas).

Cela ne devrait pas avoir d'importance. L'URI NS est juste un "nom unique" qui dénote l'espace de nommage XML pour votre modèle. Il ne doit pas être résoluble.