Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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 什么';s之间的差异<;foo></foo>;在JAXB中为空?_Java_Web Services - Fatal编程技术网

Java 什么';s之间的差异<;foo></foo>;在JAXB中为空?

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,因为这可能是完全错误的/

我已经创建了一个使用JAXB的JavaWebService应用程序。当我使用SoapUI测试我的应用程序并发送一条SOAP消息,如
,它将转换为
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);
}