# XML Encoder Objekt speichern, obwohl BufferedImage im Objekt



## Masterintenso (11. Dez 2006)

Hi Leute,

ich möchte gerne mit dem XML Encoder mehrere Daten aus Objekten speichern, dass klappt auch alles, nur bei den Objekte, wo neben Integern und Strings noch ein BufferedImage in dem Objekt ist, geht es nicht mehr.

Ich erhalte folgende Meldung:
java.lang.InstantiationException: java.awt.image.BufferedImage
Continuing ...
java.lang.RuntimeException: failed to evaluate: <unbound>=Class.new();

Ich habe schon wie mir gesagt wurde folgendes vor die Variablen geschrieben, um das Problem zu umgehen, doch leider hilft das nichts:
protected transient BufferedImage stein;

Ich hoffe ihr könnt mir weiter helfen, wenn Code gebraucht wird kann ich ihn gern nachpasten.

Danke schonmal im Voraus.

Grüße Felix


----------



## Wildcard (11. Dez 2006)

Wie willst du denn ein BufferedImage in XML speichern?  :shock:


----------



## Masterintenso (11. Dez 2006)

Ich will es nicht speichern, ich will verhindern das er das speichert aber den Rest vom Objekt übernimmt.

Das sind meine Exemplarvariablen im Objekt:
protected int x;
protected int y;
protected int width;
protected int height;
protected transient BufferedImage stein; 

Und er soll mir jetzt alles speichern davon außer dieses BufferedImage.

Ist das nicht möglich irgendwie?


----------



## Wildcard (11. Dez 2006)

In ICQ geklärt, aber für alle anderen:


			
				http://java.sun.com/products/jfc/tsc/articles/persistence4/ hat gesagt.:
			
		

> If you do not want a property to be written out, even if it has a non-default value, you can mark the property as "transient" in the BeanInfo for the class you are intending to save. The DefaultPersistenceDelegate checks for this property attribute and ignores any properties that are marked transient. The property will be omitted from the archive altogether and will take a default value when the archive is read. This code fragment makes the "text" property of the JTextField class transient:




```
BeanInfo info = Introspector.getBeanInfo(JTextField.class);
PropertyDescriptor[] propertyDescriptors =
                             info.getPropertyDescriptors();
for (int i = 0; i < propertyDescriptors.length; ++i) {
    PropertyDescriptor pd = propertyDescriptors[i];
    if (pd.getName().equals("text")) {
        pd.setValue("transient", Boolean.TRUE);
    }
}
```


----------

