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

阅读更多

用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/%[email protected]%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

 

你可能感兴趣的:(Apache,WebService,XML,SOAP,Web)