Java 什么';s之间的差异<;foo></foo>;在JAXB中为空?
我已经创建了一个使用JAXB的JavaWebService应用程序。当我使用SoapUI测试我的应用程序并发送一条SOAP消息,如Java 什么';s之间的差异<;foo></foo>;在JAXB中为空?,java,web-services,Java,Web Services,我已经创建了一个使用JAXB的JavaWebService应用程序。当我使用SoapUI测试我的应用程序并发送一条SOAP消息,如,它将转换为0,但如果我的SOAP消息中没有标记,它将转换为null。为什么未转换为null?我怎样才能改变它 @WebMethod public void test(Integer foo) { System.out.print(foo); } null通常表示“未知”。因为foo不在场,所以绝对没有关于它的信息。无法指定默认值0,因为这可能是完全错误的/
,它将转换为0
,但如果我的SOAP消息中没有
标记,它将转换为null
。为什么
未转换为null
?我怎样才能改变它
@WebMethod
public void test(Integer foo) {
System.out.print(foo);
}
null
通常表示“未知”。因为foo不在场,所以绝对没有关于它的信息。无法指定默认值0,因为这可能是完全错误的/灾难性的。你所能做的就是说“我不知道”,这可以归结为空。另一方面,
意味着foo存在且为空,这通常归结为0
如果您使用的是jaxb2.2,那么您可以在参数级别指定@xmlement(nillable=true)
注释,以将XML表示为xsi:nil=“true”
我正在使用JAXB2.1。如果我像你告诉我的那样放置@XmlElement,编译错误就会出现。@Chris-在参数级别设置
@XmlElement
注释的功能是在JAXB 2.2中引入的。
@WebMethod
public void test(@XmlElement(nillable=true) Integer foo) {
System.out.print(foo);
}