首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

WebService CXF中传接复杂类型对象

2012-12-19 
WebService CXF中传递复杂类型对象前面一篇文章介绍的都是传递简单的字符串,现在开始介绍传递复杂类型的对

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()  方法

热点排行