gpt4 book ai didi

java - "minOccurs"和 Java Contract-First Web 服务中生成的类型

转载 作者:搜寻专家 更新时间:2023-11-01 03:54:20 27 4
gpt4 key购买 nike

我在使用 Java 中契约优先生成的 Web 服务时遇到了问题。在我的模式中,我有这样的东西:

<element maxOccurs="1" minOccurs="1" name="GUID" type="xs:long" /> 

生成类的字段如下:

protected long GUID;

现在,当我尝试启动我的 web 服务时,当不为 GUID 设置任何值时,new java long 的默认值设置为 (0),并且不会抛出任何异常。当然这不是好的行为,因为我应该需要 guid 元素。另一方面,当我将架构元素更改为如下内容时:

<element maxOccurs="1" minOccurs="0" name="GUID" type="xs:long" /> 

(从逻辑的角度来看这是不正确的,因为需要 GUID 元素)生成的类字段如下所示:

{protected Long GUID; }

现在,当在 web 服务执行中没有设置 GUID 时,GUID 值为空,我可以检查我是否从 java 代码中抛出异常。

所以我想请教您如何使用 minOccurs="0"生成的类和 protected Long GUID; (或者至少在未设置此值时出现异常)

我正在使用随 glassfish 2.1.1 和 SopaUI 一起提供的 JAXB 来执行 Web 服务。

最佳答案

我找到了解决方案。非常简单:我必须添加 nillable="true":

<element maxOccurs="1" minOccurs="1" name="GUID" type="xs:long" nillable="true" /> 

生成类中的字段类型现在是 Long!
顺便提一句。这表明即使没有人回答它,描述你的问题也是好的(也许它是类似于“Rubber duck debugging”方法的机制?:))

关于java - "minOccurs"和 Java Contract-First Web 服务中生成的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13468854/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com