[Simple-support] TransformException
Brought to you by:
niallg
|
From: Karthik K. <ka...@on...> - 2007-11-13 18:33:02
|
Hi,
I am having trouble with serialization of an inner element of an object.
Here is some example code to show what is not working:
@Root
public class SerializationWrapper <T>
{
@Element
private T _wrapped;
public SerializationWrapper(T object) {
_wrapped = object;
}
public T getInner() {
return _wrapped;
}
}
public abstract class Packet
{
// basic Packet methods
}
@Root
public class MessagePacket extends Packet
{
@Element(name="message")
private String _message;
public MessagePacket(String message)
{
_message = message;
}
public String getMessage() {
return _message;
}
}
Packet p = new MessagePacket("test");
SerializationWrapper<Packet> wrapper = new SerializationWrapper<Packet>(p);
*Serialization of p itself gives valid XML:*
<messagePacket>
<message>test</message>
</messagePacket>
*However, trying to serialize wrapper produces the following
exception/stack trace:*
org.simpleframework.xml.transform.TransformException: Transform of class
com.vandul.messaging.packets.MessagePacket not supported
at
org.simpleframework.xml.transform.PackageMatcher.match(PackageMatcher.java:91)
at
org.simpleframework.xml.transform.DefaultMatcher.matchType(DefaultMatcher.java:111)
at
org.simpleframework.xml.transform.DefaultMatcher.match(DefaultMatcher.java:90)
at
org.simpleframework.xml.transform.Transformer.write(Transformer.java:129)
...
This occurs even if I remove the abstraction and make
SerializationWrapper's generic type a MessagePacket:
SerializationWrapper<MessagePacket> wrapper2 = new
SerializationWrapper<MessagePacket>((MessagePacket) p);
Any help with this would be greatly appreciated. Thanks,
Karthik
|