我正在尝试使用 RSA 7.5 和 Websphere 7 服务器开发 IBM JAX_WS Web 服务。由于我是初学者,因此我遵循 Java 类优先方法,即我首先创建 Java 类,然后生成 WSDL 文件。
当我尝试创建 wsdl 文件时,出现异常:
java.security.PrivilegedActionException:com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 计数 IllegalAnnotationsException 类有两个同名的属性“planId”
我在这里提到的课程看起来像这样:
public class MemberDetails{
@XMLElement(required=true)
private String planId;
//public getters and setters for the planId;
}
我不知道为什么会发生这种异常。通过谷歌搜索,我尝试了一些替代方法来解决它,但没有一个对我有用:(
笔记:
这是我在整个工作区中使用的唯一注释。我不确定这是否依赖于其他一些注释。但是我尝试了一些,例如@XMLElement(name="Plan",required=true)、@XMLType 等,但每次我都遇到这个异常。
此异常发生在 wsgen 期间。( java.lang.reflect.InvocationTargetException )
编辑
基本上,当我们从 java 服务方法创建一个 wsdl 并在 SOAP UI 中打开该 WSDL 时,我们就会到达<!--Optional-->
每个元素的顶部。我想删除此选项标记<!--Optional-->
标记,因此我正在尝试使用 @XMLElement(required=true) 方法,以便当我在 SOAP UI 中打开 WSDL 时<!--Optional-->
不会出现强制元素。
根据我的概念,@XMLElement(required=true) 会将 minOccurs 设置为 1,即大于零,因此当我在 SOAP UI 中打开它时,可选注释将从 WSDL 中删除。但不幸的是它不起作用,因此我的概念是不正确的。生成 WSDL 后,我可以看到 minOccurs 仍然为 0。
请解释当我在 SOAP UI 中打开 WSDL 时如何删除可选标记。
问候,