EMF und das Abspeichern als XML

Status
Nicht offen für weitere Antworten.

Waldi

Bekanntes Mitglied
Hallo,

ich habe hier etwas scheinbar triviales doch ich hab trotzdem Probleme ;-). Ich habe mir ein *ecore gebaut, ein genmodel dazu und mir das Model generieren lassen. Nun habe ich folgenden Code und immer die exception

org.eclipse.emf.ecore.resource.Resource$IOWrappedException: The object 'test.pack.impl.ItemsImpl@1e4cbc4 (dbField: DBField01, cmField: CMField01)' is not contained in a resource.
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.endSave(XMLSaveImpl.java:306)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:270)
at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:206)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1406)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:993)
at Test.main(Test.java:56)
Caused by: org.eclipse.emf.ecore.xmi.DanglingHREFException: The object 'test.pack.impl.ItemsImpl@1e4cbc4 (dbField: DBField01, cmField: CMField01)' is not contained in a resource.
.....

Java:
import java.io.File;
import java.io.IOException;
import java.util.Collections;

import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.xmi.impl.XMLResourceFactoryImpl;

import test.pack.Items;
import test.pack.POrder;
import test.pack.PackFactory;
import test.pack.PackPackage;


public class Test {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		POrder mod = PackFactory.eINSTANCE.createPOrder();
		Items mapping01 = PackFactory.eINSTANCE.createItems();
		Items mapping02 = PackFactory.eINSTANCE.createItems();
		Items mapping03 = PackFactory.eINSTANCE.createItems();
		
		ResourceSet resourceSet = new ResourceSetImpl();
		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xml", new XMLResourceFactoryImpl());
		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(PackPackage.eNS_URI, PackPackage.eINSTANCE);
		
		URI fileUri = URI.createFileURI(new File("model.xml").getAbsolutePath());
		Resource res = resourceSet.createResource(fileUri);

		mod.setCmClass("AIOI");
		mod.setCmDossier("dossier");
		mod.setSql("SELECT * FROM TabellenName WHERE Bedinung = ");

		
		mapping01.setCmField("CMField01");
		mapping01.setDbField("DBField01");
		
		mapping02.setCmField("CMField02");
		mapping02.setDbField("DBField02");
		
		mapping03.setCmField("CMField03");
		mapping03.setDbField("DBField03");

		mod.getMapping().add(mapping01);
		mod.getMapping().add(mapping02);
		mod.getMapping().add(mapping03);
        
		res.getContents().add(mod);

		try {
			res.save(Collections.EMPTY_MAP);
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}

Wenn ich mod alleine speichere dann geht es... Die abhängigen machen Probleme.. (Scheiss Drogen ;-))
 

Waldi

Bekanntes Mitglied
Hat sich erledigt... Die Referenz musste als Reource gegeben sein. Warum auch immer jetzt hab ich es geändert und VOILA
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben