私は現在、OpensamlとOpenws APIを使用して独自のカスタムセキュリティトークンサービスを構築しています。JAXBでは、引数のないコンストラクタを使用してOpensamlオブジェクトとOpenwsオブジェクトをマーシャリングおよびアンマーシャリングできません。
私はSpringでCXFを使用しています。この技術は、SOAPのヘッダに要素(SAMLアサーションなど)を操作して挿入できるインターセプタを容易にします。
しかし、OpenWS RequestSecurityTokenオブジェクトを私のWebサービスメソッドを介して石鹸本体に挿入したいと思います。
OpenWS RequestSecurityTokenオブジェクト自体には、引数のないコンストラクタは定義されておらず、どちらもスーパークラスではありません。ルートクラスは空のコンストラクタも持たないorg.w3c.xml.Elementです。
JAXBは例外をスローします。これは、インターフェイスを処理できないと言っていますが、これらのクラスはインターフェイスではありません。
私はソースコードを持っていないので、簡単にコンストラクタを追加することはできません。カスタムアノテーション、アダプタクラス、カスタムマーシャラーへのポインタを含む、これについてインターネット上に多くの記事が掲載されていますが、どのアプローチを採用するのかは分かりません。
BTW:OpenWSとOpensamlには、オブジェクトごとにマーシャラとアンマーシャラが付属しています。 JAXBにカスタムマーシャラーを使用させてもらうことができたのかどうか疑問に思っていましたか?
私はただの例を踏襲しており、残念ながらそれはどんな違いを行っていません。 –
私はそれがopensamlとopenwsオブジェクトの構造と関係していると思います。すべてのオブジェクトは、深い階層を経て構築されます。各オブジェクトにはコンストラクタがありますが、デフォルトの空コンストラクタはありません。属性はコンストラクタへのパスで、 'their' setとgetメソッドを使ってスーパークラスに設定されます。したがって、特定のオブジェクトのApapterを定義しましたが、同じ例外がスローされます。 –