WebService CXF中传递复杂类型对象
前面一篇文章介绍的都是传递简单的字符串,现在开始介绍传递复杂类型的对象。如JavaBean、Array、List、Map等。
如有不正确之处,请各位给予指出!
?
1、 首先看看服务器端的代码所需要的JavaBean对象
?下面的是集合传递Users,CXF直接传递集合对象会出现异常,用一个对象包装下就Ok了,不知道是什么原因。
?
3、 发布WebService的代码
?
?
?
1 楼 萧_瑟 2012-03-29 您好,请问你说的 :CXF直接传递集合对象会出现异常。这个异常指的是什么异常呢?是这个吗?
[javax.xml.bind.JAXBException: class xxxxxxxx nor any of its super class is known to this context.]
我通过JSON封装了一个Bean
String result = JSonDataFormatUtils.resultJSonFormat(object);
然后通过CXF webservice去获得这个json的result 数据就报出这个错了,你知道怎么解决吗?
如果不通过CXF,普通的方法调用就可以获得,不知道是什么原因。 2 楼 温柔的羊 2012-03-29 萧_瑟 写道您好,请问你说的 :CXF直接传递集合对象会出现异常。这个异常指的是什么异常呢?是这个吗?
[javax.xml.bind.JAXBException: class xxxxxxxx nor any of its super class is known to this context.]
我通过JSON封装了一个Bean
String result = JSonDataFormatUtils.resultJSonFormat(object);
然后通过CXF webservice去获得这个json的result 数据就报出这个错了,你知道怎么解决吗?
如果不通过CXF,普通的方法调用就可以获得,不知道是什么原因。
把跟接口和实现类放到同一个包下面,试一试。
可能是cxf在object和xml转换的时候会默认在同一个包下面找。 3 楼 萧_瑟 2012-03-30 温柔的羊 写道萧_瑟 写道您好,请问你说的 :CXF直接传递集合对象会出现异常。这个异常指的是什么异常呢?是这个吗?
[javax.xml.bind.JAXBException: class xxxxxxxx nor any of its super class is known to this context.]
我通过JSON封装了一个Bean
String result = JSonDataFormatUtils.resultJSonFormat(object);
然后通过CXF webservice去获得这个json的result 数据就报出这个错了,你知道怎么解决吗?
如果不通过CXF,普通的方法调用就可以获得,不知道是什么原因。
把跟接口和实现类放到同一个包下面,试一试。
可能是cxf在object和xml转换的时候会默认在同一个包下面找。
还是不行。 4 楼 jiangli19192 2012-08-30 cxf能把对象转化成json格式输出,那服务端接收参数是对象,但是客户端传入的是json格式,能不能自动转换? 5 楼 jiangli19192 2012-08-30 如果在线的话,请联系我,qq:362503078 6 楼 Itach 2012-11-16 您好,请问CXF框架下,服务端实体类代码中有List类型的属性,在客户端生成的该类对应的代码只有getter方法,没有setter方法,该怎么解决。 7 楼 Itach 2012-11-16 补充6楼:
服务端:
private List<Material> materials;
public void setMaterials(List<Material> materials){
this.materials = materials;
}
public void setMaterial(List<Material> materials){
this.materials = materials;
}
生成的客户端:
@XmlElement(nillable = true)
protected List<Material> materials;
public List<Material> getMaterials() {
if (materials == null) {
materials = new ArrayList<Material>();
}
return this.materials;
}
无 setMaterials() 方法