Я пытаюсь создать веб-службу IBM JAX_WS с использованием RSA 7.5 и сервера Websphere 7. Поскольку я новичок, следовательно, я следую первому подходу 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;
}
У меня нет идеи, почему это исключение происходит. Через поиск Google я попробовал несколько альтернатив для его решения, но ни один из них не работал у меня: (
Примечание:
Это единственная аннотация, которую я использую на протяжении всего рабочего пространства. Я не уверен, что это зависит от каких-то других аннотаций или нет. Но я попробовал несколько таких, как @XMLElement (name= "Plan", required = true), @XMLType и т.д., Но каждый раз, когда получаю это исключение.
Это исключение происходит во время wsgen. (java.lang.reflect.InvocationTargetException)
ИЗМЕНИТЬ
В принципе, когда мы создаем wsdl из java-сервиса и открываем WSDL в SOAP UI, мы получаем <!--Optional-->
в верхней части каждого элемента. Я хочу удалить тег тега <!--Optional-->
, поэтому я пытаюсь использовать метод @XMLElement (required = true), чтобы при открытии WSDL в SOAP UI <!--Optional-->
не отображается для принудительных элементов.
Согласно моей концепции, @XMLElement (required = true) установит minOccurs на 1, то есть больше нуля, и, следовательно, необязательный комментарий будет удален из WSDL, когда я открою его в пользовательском интерфейсе SOAP. Но, к сожалению, он не работает, поэтому моя концепция неверна. После создания WSDL я вижу, что minOccurs все равно 0.
Пожалуйста, объясните, как удалить необязательный тег при открытии WSDL в интерфейсе SOAP.
Привет,