クラスjavax.security.auth.x500.X500Principal
は final であり、(もちろん) JAXB アノテーションが付けられていませんか? では、それをより大きなオブジェクト グラフの一部としてマーシャリングするにはどうすればよいでしょうか。私はそれをそのプロパティの値で置き換えたいと思いname
ます。
編集
解決策は簡単です:
final class X500PrincipalXmlAdapter
extends XmlAdapter<String, X500Principal> {
@Override public X500Principal unmarshal(String name) {
return new X500Principal(name);
}
@Override public String marshal(X500Principal principal) {
return principal.getName();
}
}
実際のところ、なぜ JAXB で公開されていない XMLAdapter クラスを使用できるのか疑問に思っていますが、私は確かにその方法を好みます。