Re: [Simple-support] error while deserializing
Brought to you by:
niallg
|
From: Shobhit S. <sho...@gm...> - 2012-05-31 12:06:13
|
thanks for replying.
After changing the code, I was able to deserialize the xml. But I had to
change the attribute "class" to some other name say for eg "class1". I
think "class" is a keyword and cannot be used directly. With "class" as
attribute I am getting following errors :
------------------------------------------------------------------------------------------------------------------------------------
Exception in thread "main" java.lang.ClassNotFoundException: Action3
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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)
at org.simpleframework.xml.strategy.Loader.load(Loader.java:50)
at
org.simpleframework.xml.strategy.TreeStrategy.readValue(TreeStrategy.java:163)
at org.simpleframework.xml.strategy.TreeStrategy.read(TreeStrategy.java:102)
at org.simpleframework.xml.core.Source.getOverride(Source.java:370)
at org.simpleframework.xml.core.Factory.getConversion(Factory.java:207)
at org.simpleframework.xml.core.Factory.getOverride(Factory.java:139)
at
org.simpleframework.xml.core.ObjectFactory.getInstance(ObjectFactory.java:63)
at org.simpleframework.xml.core.Composite.read(Composite.java:141)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at
org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:190)
at
org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:167)
at
org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:124)
at org.simpleframework.xml.core.Composite.readVariable(Composite.java:687)
at org.simpleframework.xml.core.Composite.readInstance(Composite.java:635)
at org.simpleframework.xml.core.Composite.readUnion(Composite.java:610)
at org.simpleframework.xml.core.Composite.readElement(Composite.java:593)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:506)
at org.simpleframework.xml.core.Composite.readSection(Composite.java:388)
at org.simpleframework.xml.core.Composite.read(Composite.java:367)
at org.simpleframework.xml.core.Composite.readDefault(Composite.java:262)
at org.simpleframework.xml.core.Composite.read(Composite.java:232)
at org.simpleframework.xml.core.Composite.read(Composite.java:202)
at org.simpleframework.xml.core.Composite.read(Composite.java:150)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at org.simpleframework.xml.core.Persister.read(Persister.java:632)
at org.simpleframework.xml.core.Persister.read(Persister.java:613)
at org.simpleframework.xml.core.Persister.read(Persister.java:591)
at org.simpleframework.xml.core.Persister.read(Persister.java:550)
at org.simpleframework.xml.core.Persister.read(Persister.java:528)
at org.simpleframework.xml.core.Persister.read(Persister.java:433)
at org.emotio.tasker.datadef.Deserialize.main(Deserialize.java:26)
------------------------------------------------------------------------------------------------------------------------------------
Thus can anyone help me with how can I make read the attribute "class".
Also, my new code is given below. This code is working fine if I change the
attribute "class" to some other name and make respective changes.
test.xml
<datadef>
<maxversion class="Action3" v.="3"/>
<maxversion class="Action4" v.="4"/>
<maxversion class="Action5" v.="5"/>
</datadef>
Deserialize.java
import java.io.File;
import java.util.List;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
public class Deserialize {
@ElementList(inline=true)
public List<Maxversion> max_version;
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Serializer serializer = new Persister();
File source = new File("importFiles/test.xml");
Deserialize deserialize = serializer.read(Deserialize.class, source);
int count_version = deserialize.max_version.size();
int i = 0;
while(i < count_version)
{
System.out.println(deserialize.max_version.get(i).class1 + " " +
deserialize.max_version.get(i).version);
i++;
}
}
}
Maxversion.java
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Root;
@Root(name="maxversion")
public class Maxversion {
@Attribute(name="class", required=false)
public String class1;
@Attribute(name="v.", required=false)
public int version;
}
Awaiting for help.
thanks in advance.
regards,
--
Shobhit Sharda
MSc in SSE
RWTH Aachen University
Aachen
Germany
blog: http://shobhitsharda.wordpress.com
|