[英]“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.