Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAXWS客户端是否区分空集合和作为返回值的空集合值?_Java_Xml_Web Services_Jax Ws - Fatal编程技术网

Java JAXWS客户端是否区分空集合和作为返回值的空集合值?

Java JAXWS客户端是否区分空集合和作为返回值的空集合值?,java,xml,web-services,jax-ws,Java,Xml,Web Services,Jax Ws,由于JAX-WS依赖于JAXB,并且由于我观察到在JAX-B参考实现中解压XML bean的代码,我猜两者之间没有区别,而且JAXWS客户端总是返回空集合,即使webservice结果是空元素: public T startPacking(BeanT bean, Accessor<BeanT, T> acc) throws AccessorException { T collection = acc.get(bean); if(collection==

由于JAX-WS依赖于JAXB,并且由于我观察到在JAX-B参考实现中解压XML bean的代码,我猜两者之间没有区别,而且JAXWS客户端总是返回空集合,即使webservice结果是空元素:

public T startPacking(BeanT bean, Accessor<BeanT, T> acc) throws AccessorException {
        T collection = acc.get(bean);
        if(collection==null) {
            collection = ClassFactory.create(implClass);
            if(!acc.isAdapted())
                acc.set(bean,collection);
        }
        collection.clear();
        return collection;
    }
public T启动包(BeanT bean、访问器acc)抛出AccessorException{
T collection=acc.get(bean);
if(集合==null){
collection=ClassFactory.create(implClass);
如果(!acc.isAdapted())
acc.set(bean,集合);
}
collection.clear();
回收;
}
我同意为了实现最佳互操作性,服务契约应该是不含糊的,并避免这种差异,但我正在调用的JAX-WS服务(托管在带有Jbossws实现的Jboss服务器上)似乎总是按照预期返回空集合(使用SoapUI测试)

我使用wsimport生成的测试代码。 返回元素定义为:

@XmlElement(name = "return", nillable = true)
protected List<String> _return;
@xmlement(name=“return”,nillable=true)
受保护名单(返回);;
我甚至测试了将响应类getReturn方法更改为:

public List<String> getReturn() {
    if (_return == null) {
        _return = new ArrayList<String>();
    }
    return this._return;
}
public List getReturn(){
if(_return==null){
_return=newarraylist();
}
归还这个;
}

public List getReturn(){
归还这个;
}
但是没有成功


欢迎提供有关此问题的任何有用信息/意见

无法区分XML中的空集合和
null
。集合通常被序列化为一系列标记(
xs:sequence
,在模式中),没有表示集合本身的封闭标记

<item value="item1"/>
<item value="item2"/>
<item value="item1"/>
<item value="item2"/>
<items>
  <item value="item1"/>
  <item value="item2"/>
</items>