用cxf的wsdl2java工具生成客户端代码,但是发现生成的所有自定义的dto类的成员变量,都被映射成JAXBElement<T>的类型了,用起来很麻烦。
后来经过试验,发现将wsdl里的nillable修改为false后,再产生的java代码就是简单的POJO了。
nillable:
一个指示符,指示是否可以将显式的零值分配给该元素。此项应用于元素内容并且不是该元素的属性。默认值为 false。
如果 nillable 为 true,将使该元素的实例可以将 nil 属性设置为 true。nil 属性被定义为实例的 XML 架构命名空间的一部分。
例如,下段定义了单个元素,同时将 nillable 设置为 true。
<xs:element name="myDate" type="xs:date" nillable="true"/>
下段使用该元素并具有显式零值(nil 属性设置为 true)。
<myDate xsi:nil="true"></myDate>
可选。
wsdl2java命令:wsdl2java -client -frontend jaxws21 sss.wsdl