Java 删除Nillable=";“真的”;在生成WSDL时

Java 删除Nillable=";“真的”;在生成WSDL时,java,wsdl,axis2,Java,Wsdl,Axis2,我正在创建一个web服务,并使用Axis2生成一个契约(WSDL),就像POJO web服务一样,它反过来会给我这样的输出 <xs:element minOccurs="0" name="acHolderName" nillable="true" type="xs:string"/> 而必需的是这个 是否有任何注释可以让我这样做或任何其他更好的实现???记录nil属性 从java对象序列化的角度来看,它允许对象属性具有空值,并且仍然是有效的XML文档。这是在XML模式中表示Ja

我正在创建一个web服务,并使用Axis2生成一个契约(WSDL),就像POJO web服务一样,它反过来会给我这样的输出

<xs:element minOccurs="0" name="acHolderName" nillable="true" type="xs:string"/>

而必需的是这个


是否有任何注释可以让我这样做或任何其他更好的实现???

记录nil属性

从java对象序列化的角度来看,它允许对象属性具有空值,并且仍然是有效的XML文档。这是在XML模式中表示Java对象的默认方式,因为对象属性不强制在Java中填充

如果你想对WSDL有更多的控制,你需要考虑使用像JAXW之类的东西。这里的问题是,这种技术的支持在Axis2中还不是很成熟,在我看来,部署起来更复杂


如果您想绝对控制您的WSDL(将其用作接口规范),那么最好使用它来生成Java代码,而不是希望您的Java符合其他人的规范。

如果您将Apache stuff与JAX-WS一起使用,使用Apache CXF可能会更好。非常感谢您花时间回答:)但这里的整个问题是自上而下的方法。就像我说的,有一个WSDL有后一个XML标记,我应该单独使用它。为了进行分析,我生成了WSDL(注意:从下到上检查出错的地方???)并为POJO中的所有字段生成了一个nillable=“true”。我这里的问题是“我是否必须在POJO中实现任何东西,以便在生成WSDL时自动忽略nillable=“true”?”据我所知,这不能使用基于POJO的web服务来实现。nil属性用于表示对象的空值。当然,minOccurs=“0”属性也可能表示空值,这就是导致Java对象的web服务格式副本混乱的原因。。。我不知道为什么有两种机制。。。。归咎于XML模式规范:-(要么从WSDL生成接口代码,要么使用JAX-WS之类的技术,允许您从java代码对生成的WSDL进行更多控制