Please, tell me why an Exception is generated? I am getting exception, when I try to de-serialize xml to java object.
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException: No such field addressservice.Region.region.
---- Debugging information ----
field : region
class : addressservice.Region
required-type : addressservice.Region
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path : /AddressServiceConfig/regions/region
line number : 3
class[1] : addressservice.AddressServiceConfig
version : 1.4.7
My XML:
<addressServiceConfig>
<regions>
<region>
<regionName>region1</regionName>
<provinces>
<province>
<name>province11</name>
<code>11</code>
</province>
<province>
<name>province12</name>
<code>12</code>
</province>
</provinces>
</region>
<region>
<regionName>region2</regionName>
<provinces>
<province>
<name>province21</name>
<code>21</code>
</province>
<province>
<name>province22</name>
<code>22</code>
</province>
</provinces>
</region>
</regions>
<pathToCodeposFiles></pathToCodeposFiles>
</addressServiceConfig>
My Classes
@XStreamAlias("addressServiceConfig")
public class AddressServiceConfig
{
private String pathToCodeposFiles;
@XStreamImplicit(itemFieldName = "region")
private List<Region> regions;
}
@XStreamAlias("region")
public class Region
{
private String regionName;
@XStreamImplicit(itemFieldName = "province")
private List<Province> provinces;
}
@XStreamAlias("province")
public class Province
{
private int code;
private String name;
}
Please help.
Your xml
definition does not have implicit collections regions
and provinces
but explicit ones.
You should remove @XStreamImplicit(itemFieldName = "region")
and @XStreamImplicit(itemFieldName = "province")
from your class definitions.
Explicit regions
collection:
<addressServiceConfig>
<regions>
<region>
...
</region>
<region>
...
</region>
</regions>
</addressServiceConfig>
Implicit regions
collection:
<addressServiceConfig>
<region>
...
</region>
<region>
...
</region>
</addressServiceConfig>