cxf如何传字段为null

November 29, 2013

传输对象如下:

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

应用场景需要传输的

1
clientName
为null,我们在使用client时,会有如下代码:

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

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

可以如下解决:

1
2
3
4
5
6
7
8
9
10
//通过字段序列化
@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";

}

一次技术问答

## 一次技术问答最近一年多都没有写博客了,技术上做了很多有意义的事情,也有一些经验上的积累,逐步沉淀到博客上。今天回答某公司的技术上的一些疑问,把问题和回答贴上来。逐步`养`自己的技术观。### 1. 如何做数据安全防范?还有哪些支付安全需要注意?数据安全防范主要分为两个...… Continue reading

2016年05月Reading Notes

Published on August 10, 2016

2016年05月Reading Notes

Published on June 19, 2016