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
>
|