cxf如何传字段为null

November 29, 2013

传输对象如下:

public class EmailSenderOrder {
private String clientName="test";
//clientName默认值为test
}

应用场景需要传输的clientName为null,我们在使用client时,会有如下代码:

EmailSenderOrder emailSenderOrder = new EmailSenderOrder(); 
emailSenderOrder.setClientName(null); 

服务端在接受到对象后,clientName结果等于了test。 默认情况下,如果field为null,cxf client生成的报文中没有这个field的报文,这就导致在反序列化时,初始化对象时用了默认值。

可以如下解决:

//通过字段序列化
@XmlAccessorType(XmlAccessType.FIELD) 

public class EmailSenderOrder {

//如果clientName为null,生成报文<clientName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
@XmlElement(name = "clientName", nillable = true) 
private String clientName="test";

}

2016年05月Reading Notes

## 服务发现服务发现用于动态感知服务提供方地址,并提供服务路由分发策略能力。### 客户端发现客户端从注册中心获取服务列表,客户端监听服务列表的变化,客户端通过路由策略选择合适的服务端地址。服务端在停服务时,需要先通知客户端不要发送新请求过来,等服务端把当前请求处理完后,...… Continue reading

2016年05月Reading Notes

Published on June 19, 2016

2016年05月Reading Notes

Published on May 11, 2016