@WebParam的@XmlElement(required = true)不起作用

我正在使用JAX-WS构建Web服务。 我有一个奇怪的问题,@ @XmlElement(required=true)的注释@XmlElement(required=true)在某些@WebService类中有效,但在其他一些类中不起作用。

我在两个@WebService类中有非常相似的代码。 什么可能导致这个问题? 参数类型还是实体类?

编辑:添加示例代码

我有两个Web服务:

 @WebService(name = "ClubMemberPortType", serviceName = "ClubMemberService", portName = "ClubMemberSoapPort", targetNamespace = "http://club.com/api/ws") public class ClubMemberWS { @WebMethod(operationName = "findClubMembersByClubId", action = "urn:findClubMembersByClubId") @WebResult(name = "club_membership") public List findClubMembershipsByClubId(@XmlElement(required=true) @WebParam(name = "club_id") String clubId, @WebParam(name = "status") StatusEnum status){ ... }} 

 @WebService(name = "ClubPortType", serviceName = "ClubService", portName = "ClubSoapPort", targetNamespace = "http://club.com/api/ws") public class ClubWS { @WebMethod(operationName = "findClubByClubId", action = "urn:findClubByClubId") @WebResult(name = "club") public Club findClubByClubId(@XmlElement(required=true) @WebParam(name = "club_id") String clubId) { ... }} 

生成的第一个Web方法的架构是:

     ?  ?    

为第二个Web方法生成的架构是:

      ?    

所以第一个工作正常,第二个工作不起作用。 这怎么可能? 🙁

@WebParam解决我的类似问题后添加@XmlElement(required=true,nillable=false) 。 使用CXF 2.7.9。 没试过先把@XmlElement ,难道就这么简单吗?

我有同样的问题。 我找到了使用单独的类作为服务方法参数的解决方案。

例如

 @XmlType(name="SampleRequestType", propOrder={"title", "ref"}) public class SampleRequest { @XmlElement(name="title", required=false) private String title; @XmlElement(name="ref", required=true) private String ref; ... 

网络的方法

 @WebMethod public String sampleMethod(@WebParam(name = "params") SampleRequest params) { 

也许这会有所帮助

如果您收到以下错误消息:“ 此位置不允许注释@XmlElement ”,您可能正在使用错误的import语句。

将其更改为:

 import javax.xml.bind.annotation.XmlElement; 

由于Eclipse建议将另一个软件包作为第一个选项,因此这是一个非常常见的错误。

您尝试更改@WebParam和@XmlElement中的顺序? 实际上我有一个WS whit这个:

 public Persona consultarPersona(@WebParam(name = "cedula") @XmlElement(required=true, nillable=false, name="cedula", namespace="cedulaParam") String cedula) 

描述生成的是:

     

和架构定义:

     

而已!!