使用apache-cxf-2.2.5生成WebService客户端时List属性没有Setter方法

本文探讨了使用Apache CXF 2.2.5版本生成Google AdWords Web Service客户端时遇到的问题:对于List类型的属性,仅生成了获取方法而未生成设置方法。文中还对比了JAX-RPC与JAX-WS在数据映射模型上的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用apache-cxf-2.2.5来生成Google Adwords WebService 的client,发现TargetingIdeaSelector类中的List属性只生成了get方法,没有set方法。
试验很多参数都不能生成List属性的setter方法。只能是先get出来一个List,然后向里面add。
想生成基于JAX-RPC的client也没找到方法。

 

同事zw给我发了一个link,讲到CXF就是只为List提供一个get方法

This is per jaxb spec. For collections, the jaxb spec specifically
just provides a getter, no setter. More importantly, we HAVE to have
this working with no setter in order to pass the JAX-WS TCK.

http://mail-archives.apache.org/mod_mbox/cxf-users/200801.mbox/%3C200801042107.57860.dkulp@apache.org%3E

 

JAX-WS 2.0 是 JAX-RPC 1.1 的后续版本,他们的一个区别是关于数据映射模型的

 

JAX-RPC 具有自己的映射模型,此模型大约涵盖了所有模式类型中的 90%。它没有涵盖的部分映射到了 javax.xml.soap.SOAPElement。
JAX-WS 的数据映射模型是 JAXB。JAXB 可保证所有 XML 模式的映射。

 

JAX-RPC会将集合映射成数组,而JAX-WS会将集合映射成List

 

http://www.ibm.com/developerworks/cn/webservices/ws-tip-jaxwsrpc.html

 

JSR 224: Java API for XML-Based Web Services (JAX-WS) 2.0
http://jcp.org/en/jsr/detail?id=224

The Java Web Services Tutorial
http://java.sun.com/webservices/docs/2.0/tutorial/doc/index.html

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值