В настоящее время я создаю свои собственные пользовательские службы маркеров безопасности с использованием API-интерфейсов Opensaml и Openws.
Я использую CXF с Spring, эта технология облегчает перехватчики, которые позволяют мне манипулировать и вставлять элементы (утверждения SAML и т. Д.) В заголовок мыла.
Однако я бы хотел вставить объект OpenWS RequestSecurityToken в тело мыла с помощью метода веб-службы.
Сам объект OpenWS RequestSecurityToken не имеет определенного конструктора без аргументов, равно как и его суперклассы. Корневым классом является org.w3c.xml.Element, который также не имеет пустого конструктора.
JAXB выдает исключение, жалуясь на это, говоря, что не может обрабатывать интерфейсы - даже если эти классы не являются интерфейсами!
У меня нет исходного кода, и поэтому я не могу легко добавлять конструкторы. Об этом много было написано в Интернете с указателями на пользовательские аннотации, классы адаптеров и пользовательские маршаллеры, но я не могу решить, какой подход принять.
Кстати: OpenWS и Opensaml поставляются с Marshallers и Unmarshallers для каждого объекта. Мне было интересно, удалось ли кому-нибудь заставить JAXB использовать собственные маршаллеры вообще?