繁体   English   中英

“minOccurs”并在Java Contract-First Web服务中生成类型

[英]“minOccurs” and generated type in Java Contract-First web service

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

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

哪个生成带有这样的字段的类:

protected long GUID;

现在,当我尝试触发我的webservice时,当没有为GUID设置任何值时,new java long的默认值设置为(0)并且不抛出任何异常。 当然这不是好行为,因为我应该需要guid元素。 另一方面,当我将schema元素更改为以下内容时:

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

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

{protected Long GUID; }

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

所以我想请教您如何使用带有受保护的Long GUID的minOccurs =“0”生成的类; (或者至少在没有设置此值时获得异常)

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

我能够找到解决方案。 很简单:我必须添加nillable =“true”:

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

现在生成的类中提交的类型很长!
BTW。 这表明即使没有人回答它,描述你的问题也是好的(也许它是像“橡皮鸭调试”方法中的类似机制?:))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM