Re: [Simpleweb-Support] Xml To Java Object conversion
Brought to you by:
niallg
From: Niall G. <gal...@ya...> - 2013-04-24 08:35:14
|
This is caused by erasure, T is not available at runtime. Java does not allow it. --- On Tue, 23/4/13, Hardik Upadhyay <hup...@as...> wrote: > From: Hardik Upadhyay <hup...@as...> > Subject: [Simpleweb-Support] Xml To Java Object conversion > To: "sim...@li..." <sim...@li...> > Received: Tuesday, 23 April, 2013, 5:31 AM > > > > > > > > > > > > > > > > I am converting xml file to java object using > simpleframework. I am using generics since my xml's > internal nodes gets changing. But simpleframework throws an > error while converting. Here is my sample code: > @Root(name = "searchresult", strict = false) > public class ResponseVO<T> > { > > @ElementList(entry = "document", inline = true) > > public List<T> elementVOList = new ArrayList<T>(); > > > public List<T> > getElementsVOList() > > { > > return elementVOList; > > } > > > public void setElementsVOList(List<T>list) > > { > > elementVOList = list; > > } > } > ResponseVO is container for various other VOs as > bellow: > @Root(name > = > "document", strict > = > false) > public class Projects_Display_VO > { > > > @Element(name = "projectname") > > private String projectName; > > > > @Attribute(name = "id") > > private int tmpid; > > > public int getTmpid() > > { > > return tmpid; > > } > > > public void setTmpid(int tmpid) > > { > > this.tmpid = tmpid; > > } > > /** > > * ProjectId > > */ > > > @Element(name = "projectid") > > private String projectID; > > > > public String getProjectName() > > { > > return projectName; > > } > > > public void setProjectName(String projectName) > > { > > this.projectName = projectName; > > } > > > public int getProjectID() > > { > > return Integer.parseInt(projectID); > > } > > > public void setProjectID(String projectID) > > { > > this.projectID = projectID; > > } > } > And the XML file is As bellow: > <searchresult> > <query>id:(PROJ2 PROJ6)</query> > <document id="0"> > > <projectid>2</projectid> > > <projectname>Redundant Demo Project</projectname> > > <doctype>Projects</doctype> > > <summary>||Demo Project</summary> > > <title>Redundant Demo Project</title> > </document> > > <document > id="1"> > <projectid>6</projectid> > <projectname>Redundant Demo Project2</projectname> > > <doctype>Projects</doctype> > > <summary>||Main terminal links.</summary> > > <title>Terminal 5 Project</title> > </document> > </searchresult> > The code for conversion is as bellow: > ResponseVO<Projects_Display_VO> resp = (ResponseVO<Projects_Display_VO>) SerializationUtil.deserialize(ResponseVO.class, reader); > Here i am using serializer from simpleframework. But it > throws following error > Exception::Attribute 'id' does not have a match in class java.lang.Object at line 5 > org.simpleframework.xml.core.AttributeException: Attribute 'id' does not have a match in class java.lang.Object at line 5 > at org.simpleframework.xml.core.Composite.readAttribute(Composite.java:555) > at org.simpleframework.xml.core.Composite.readAttributes(Composite.java:474) > at org.simpleframework.xml.core.Composite.readSection(Composite.java:387 > > > > > > I don’t understand > whats going wrong here. Does simpleframework supports > generics ? Or am I doing something wrong ? > > Best Regards > > Hardik Upadhyay > > > > > > > > -----Inline Attachment Follows----- > > ------------------------------------------------------------------------------ > Try New Relic Now & We'll Send You this Cool Shirt > New Relic is the only SaaS-based application performance > monitoring service > that delivers powerful full stack analytics. Optimize and > monitor your > browser, app, & servers with just a few lines of code. > Try New Relic > and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr > -----Inline Attachment Follows----- > > _______________________________________________ > Simpleweb-Support mailing list > Sim...@li... > https://lists.sourceforge.net/lists/listinfo/simpleweb-support > |