请教:castor MappingException: Could not find the class异常
05-04-27
sea0183
想用castor绑定数据生成xml文件,生成没问题.用castor读时报org.exolab.castor.mapping.MappingException: Could not find the class int异常.请高手不吝赐教!!!!!!!
错误全文如下:
org.exolab.castor.mapping.MappingException: Could not find the class int
at org.exolab.castor.mapping.loader.MappingLoader.createFieldDesc(Unknown Source)
at org.exolab.castor.xml.XMLMappingLoader.createFieldDesc(Unknown Source)
at org.exolab.castor.mapping.loader.MappingLoader.createFieldDescs(Unknown Source)
at org.exolab.castor.mapping.loader.MappingLoader.createDescriptor(Unknown Source)
at org.exolab.castor.xml.XMLMappingLoader.createDescriptor(Unknown Source)
at org.exolab.castor.mapping.loader.MappingLoader.loadMapping(Unknown Source)
at org.exolab.castor.mapping.Mapping.getResolver(Unknown Source)
at org.exolab.castor.mapping.Mapping.getResolver(Unknown Source)
at org.exolab.castor.xml.Unmarshaller.setMapping(Unknown Source)
at cms.Test.testReadNavlinkXML.main(testReadNavlinkXML.java:27)
代码如下:
第一个类:
第二个类:
mapping.xml文件:
生成的xml文件
错误全文如下:
org.exolab.castor.mapping.MappingException: Could not find the class int
at org.exolab.castor.mapping.loader.MappingLoader.createFieldDesc(Unknown Source)
at org.exolab.castor.xml.XMLMappingLoader.createFieldDesc(Unknown Source)
at org.exolab.castor.mapping.loader.MappingLoader.createFieldDescs(Unknown Source)
at org.exolab.castor.mapping.loader.MappingLoader.createDescriptor(Unknown Source)
at org.exolab.castor.xml.XMLMappingLoader.createDescriptor(Unknown Source)
at org.exolab.castor.mapping.loader.MappingLoader.loadMapping(Unknown Source)
at org.exolab.castor.mapping.Mapping.getResolver(Unknown Source)
at org.exolab.castor.mapping.Mapping.getResolver(Unknown Source)
at org.exolab.castor.xml.Unmarshaller.setMapping(Unknown Source)
at cms.Test.testReadNavlinkXML.main(testReadNavlinkXML.java:27)
代码如下:
第一个类:
package cms.Model; public class MenuModel { /*mapping.xml文件中对应的属性*/ private int id=0; private String icon=null; private String name=null; private String link=null; private String datalink=null; public MenuModel(){} public MenuModel(int id,String icon,String name,String link,String datalink){ this.id=id; this.icon=icon; this.link=link; this.name=name; this.datalink=datalink; } /*所有属性的访问方法*/ public int getId() {return id;} public String getIcon(){return icon;} public String getName(){return name;} public String getLink(){return link;} public String getDatalink(){return datalink;} /*所有属性的操作方法*/ public void setId(int id){this.id=id;} public void setIcon(String icon){this.icon=icon;} public void setName(String name){this.name=name;} public void setLink(String link){this.link=link;} public void setDatalink(String datalink){this.datalink=datalink;} } <p class="indent"> |
第二个类:
package cms.Model; import java.util.*; public class NavlinkModel { /*mapping.xml文件中对应的属性*/ private Collection menus=new ArrayList(); public NavlinkModel(){} /*所有属性的访问方法*/ public Collection getMenus(){return this.menus;} /*所有属性的操作方法*/ public void addMenus(MenuModel menu){menus.add(menu);} } <p class="indent"> |
mapping.xml文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE databases PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN" "http://castor.exolab.org/mapping.dtd"> <mapping> <class name="cms.Model.NavlinkModel" auto-complete="true"> <map-to xml="navlink"/> <field name="menus" type="cms.Model.MenuModel" collection="collection"> <bind-xml name="menuas"/> </field> </class> <class name="cms.Model.MenuModel" auto-complete="true"> <map-to xml="menu"/> <field name="id" type="int"> <bind-xml name="id" node="attribute"/> </field> <field name="name"/> <field name="icon"/> <field name="link"/> <field name="datalink"/> </class> <class name="cms.Model.BodyModel"> <field name="id" type="int"> <bind-xml name="id" node="attribute"/> </field> <field name="title" type="string"/> <field name="content" type="string"/> <field name="date" type="string"/> <field name="author" type="string"/> <field name="hits" type="string"/> <field name="status" type="string"/> </class> </mapping> <p class="indent"> |
生成的xml文件
<?xml version="1.0" encoding="UTF-8"?> <navlink-model> <menus id="1" xsi:type="java:cms.Model.MenuModel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <name>name1</name> <icon>icon1</icon> <link>link1</link> <datalink>datalink1</datalink> </menus> <menus id="2" xsi:type="java:cms.Model.MenuModel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <name>name2</name> <icon>icon2</icon> <link>link2</link> <datalink>datalink2</datalink> </menus> </navlink-model> <p class="indent"> |
sea0183
2005-04-27 12:13
错误全文如下:
org.exolab.castor.mapping.MappingException: Could not find the class int
at org.exolab.castor.mapping.loader.MappingLoader.createFieldDesc(Unknown Source)
at org.exolab.castor.xml.XMLMappingLoader.createFieldDesc(Unknown Source)
at org.exolab.castor.mapping.loader.MappingLoader.createFieldDescs(Unknown Source)
at org.exolab.castor.mapping.loader.MappingLoader.createDescriptor(Unknown Source)
at org.exolab.castor.xml.XMLMappingLoader.createDescriptor(Unknown Source)
at org.exolab.castor.mapping.loader.MappingLoader.loadMapping(Unknown Source)
at org.exolab.castor.mapping.Mapping.getResolver(Unknown Source)
at org.exolab.castor.mapping.Mapping.getResolver(Unknown Source)
at org.exolab.castor.xml.Unmarshaller.setMapping(Unknown Source)
at cms.Test.testReadNavlinkXML.main(testReadNavlinkXML.java:27)
代码如下:
第一个类:
package cms.Model;
public class MenuModel {
/*mapping.xml文件中对应的属性*/
private int id=0;
private String icon=null;
private String name=null;
private String link=null;
private String datalink=null;
public MenuModel(){}
public MenuModel(int id,String icon,String name,String link,String datalink){
this.id=id;
this.icon=icon;
this.link=link;
this.name=name;
this.datalink=datalink;
}
/*所有属性的访问方法*/
public int getId() {return id;}
public String getIcon(){return icon;}
public String getName(){return name;}
public String getLink(){return link;}
public String getDatalink(){return datalink;}
/*所有属性的操作方法*/
public void setId(int id){this.id=id;}
public void setIcon(String icon){this.icon=icon;}
public void setName(String name){this.name=name;}
public void setLink(String link){this.link=link;}
public void setDatalink(String datalink){this.datalink=datalink;}
}
第二个类:
package cms.Model;
import java.util.*;
public class NavlinkModel {
/*mapping.xml文件中对应的属性*/
private Collection menus=new ArrayList();
public NavlinkModel(){}
/*所有属性的访问方法*/
public Collection getMenus(){return this.menus;}
/*所有属性的操作方法*/
public void addMenus(MenuModel menu){menus.add(menu);}
}
mapping.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE databases PUBLIC
"-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
"http://castor.exolab.org/mapping.dtd">
<mapping>
<class name="cms.Model.NavlinkModel" auto-complete="true">
<map-to xml="navlink"/>
<field name="menus" type="cms.Model.MenuModel" collection="collection">
<bind-xml name="menuas"/>
</field>
</class>
<class name="cms.Model.MenuModel" auto-complete="true">
<map-to xml="menu"/>
<field name="id" type="int">
<bind-xml name="id" node="attribute"/>
</field>
<field name="name"/>
<field name="icon"/>
<field name="link"/>
<field name="datalink"/>
</class>
<class name="cms.Model.BodyModel">
<field name="id" type="int">
<bind-xml name="id" node="attribute"/>
</field>
<field name="title" type="string"/>
<field name="content" type="string"/>
<field name="date" type="string"/>
<field name="author" type="string"/>
<field name="hits" type="string"/>
<field name="status" type="string"/>
</class>
</mapping>
生成的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<navlink-model>
<menus id="1" xsi:type="java:cms.Model.MenuModel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<name>name1</name>
<icon>icon1</icon>
<link>link1</link>
<datalink>datalink1</datalink>
</menus>
<menus id="2" xsi:type="java:cms.Model.MenuModel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<name>name2</name>
<icon>icon2</icon>
<link>link2</link>
<datalink>datalink2</datalink>
</menus>
</navlink-model>
org.exolab.castor.mapping.MappingException: Could not find the class int
at org.exolab.castor.mapping.loader.MappingLoader.createFieldDesc(Unknown Source)
at org.exolab.castor.xml.XMLMappingLoader.createFieldDesc(Unknown Source)
at org.exolab.castor.mapping.loader.MappingLoader.createFieldDescs(Unknown Source)
at org.exolab.castor.mapping.loader.MappingLoader.createDescriptor(Unknown Source)
at org.exolab.castor.xml.XMLMappingLoader.createDescriptor(Unknown Source)
at org.exolab.castor.mapping.loader.MappingLoader.loadMapping(Unknown Source)
at org.exolab.castor.mapping.Mapping.getResolver(Unknown Source)
at org.exolab.castor.mapping.Mapping.getResolver(Unknown Source)
at org.exolab.castor.xml.Unmarshaller.setMapping(Unknown Source)
at cms.Test.testReadNavlinkXML.main(testReadNavlinkXML.java:27)
代码如下:
第一个类:
package cms.Model;
public class MenuModel {
/*mapping.xml文件中对应的属性*/
private int id=0;
private String icon=null;
private String name=null;
private String link=null;
private String datalink=null;
public MenuModel(){}
public MenuModel(int id,String icon,String name,String link,String datalink){
this.id=id;
this.icon=icon;
this.link=link;
this.name=name;
this.datalink=datalink;
}
/*所有属性的访问方法*/
public int getId() {return id;}
public String getIcon(){return icon;}
public String getName(){return name;}
public String getLink(){return link;}
public String getDatalink(){return datalink;}
/*所有属性的操作方法*/
public void setId(int id){this.id=id;}
public void setIcon(String icon){this.icon=icon;}
public void setName(String name){this.name=name;}
public void setLink(String link){this.link=link;}
public void setDatalink(String datalink){this.datalink=datalink;}
}
第二个类:
package cms.Model;
import java.util.*;
public class NavlinkModel {
/*mapping.xml文件中对应的属性*/
private Collection menus=new ArrayList();
public NavlinkModel(){}
/*所有属性的访问方法*/
public Collection getMenus(){return this.menus;}
/*所有属性的操作方法*/
public void addMenus(MenuModel menu){menus.add(menu);}
}
mapping.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE databases PUBLIC
"-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
"http://castor.exolab.org/mapping.dtd">
<mapping>
<class name="cms.Model.NavlinkModel" auto-complete="true">
<map-to xml="navlink"/>
<field name="menus" type="cms.Model.MenuModel" collection="collection">
<bind-xml name="menuas"/>
</field>
</class>
<class name="cms.Model.MenuModel" auto-complete="true">
<map-to xml="menu"/>
<field name="id" type="int">
<bind-xml name="id" node="attribute"/>
</field>
<field name="name"/>
<field name="icon"/>
<field name="link"/>
<field name="datalink"/>
</class>
<class name="cms.Model.BodyModel">
<field name="id" type="int">
<bind-xml name="id" node="attribute"/>
</field>
<field name="title" type="string"/>
<field name="content" type="string"/>
<field name="date" type="string"/>
<field name="author" type="string"/>
<field name="hits" type="string"/>
<field name="status" type="string"/>
</class>
</mapping>
生成的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<navlink-model>
<menus id="1" xsi:type="java:cms.Model.MenuModel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<name>name1</name>
<icon>icon1</icon>
<link>link1</link>
<datalink>datalink1</datalink>
</menus>
<menus id="2" xsi:type="java:cms.Model.MenuModel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<name>name2</name>
<icon>icon2</icon>
<link>link2</link>
<datalink>datalink2</datalink>
</menus>
</navlink-model>
banq
2005-04-27 21:19
Could not find the class int
有关一个整数型int映射错误, 你大概没有正确设置映射文件中有关int对应的class,一般应该是Integer
有关一个整数型int映射错误, 你大概没有正确设置映射文件中有关int对应的class,一般应该是Integer