IllegalAnnotationsException:类具有两个相同名称的属性
我正在尝试使用RSA 7.5和Websphere 7服务器开发IBM JAX_WS
Web服务。因为我是一个初学者,所以我遵循Java类优先方法,即首先创建Java类,然后生成WSDL文件。
当我尝试创建wsdl文件时,出现异常:
我在这里引用的课程看起来像这样:
public class MemberDetails{ @XMLElement(required=true)
private String planId;
//public getters and setters for the planId;
}
我不知道为什么会发生这种异常。通过谷歌搜索,我尝试了几种解决方案,但是没有一个对我有用:(
这是我在整个工作空间中使用的唯一注释。我不确定这是否取决于其他注释。但是我每次都尝试使用诸如@XMLElement(name =“
Plan”,required = true),@ XMLType之类的方法,但是每次遇到此异常时,我都会尝试使用。
wsgen期间发生此异常。( )
基本上,当我们从java服务方法创建wsdl并在SOAP UI中打开该WSDL时,我们就<!--
Optional-->位于每个元素的顶部。我想删除此选项标签<!--Optional-->
标签,因此我尝试使用@XMLElement(required
= true)方法,以便在SOAP UI <!--Optional-->
中打开WSDL时对于强制性元素不会出现。
根据我的概念,@ XMLElement(required = true)会将minOccurs设置为1,即大于零,因此当我在SOAP
UI中打开时,将从WSDL中删除可选注释。但是不幸的是它不起作用,因此我的概念是错误的。生成WSDL之后,我可以看到minOccurs仍然为0。
请说明在SOAP UI中打开WSDL时如何删除可选标记。
问候,
回答:
默认情况下,
实现处理公共访问器方法和带注释的字段。如果您为字段添加注释,则该字段也具有get / set方法,则将出现此异常:
如果要注释字段,则应指定 @XmlAccessorType(XmlAccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)public class MemberDetails{
@XMLElement(required=true)
private String planId;
//public getters and setters for the planId;
}
或者您可以注释属性
public class MemberDetails{ private String planId;
@XMLElement(required=true)
public String getPlanId() {
return planId;
}
}
- http://blog.bdoughan.com/2011/06/using-jaxbs-xmlaccessortype-to.html
以上是 IllegalAnnotationsException:类具有两个相同名称的属性 的全部内容, 来源链接: utcz.com/qa/428945.html