私は最近、Jersey JAX-RS Rest サービスを実装しました。XML 型と Java 型の間でアンマーシャリングとマーシャリングを行うことができる JIBX プロバイダーを作成しました。URL パスでバージョンを指定して、サービスのバージョンも変更したいと考えています。バージョニングには、Java 型のマーシャリングおよびアンマーシャリングに使用されるメッセージ バインディングのバージョンが含まれます。
したがって、バージョンをカスタム JIBX プロバイダーに渡す必要があり、そのバージョンを含む URL パスが必要です。ただし、プロバイダ インターフェイス (MessageBodyWriter
およびMessageBodyReader
) は、インターフェイス メソッドで URI パスを提供しません。
以下は、インターフェイスのwriteTo()
メソッドのメソッド シグネチャです。MessageBodyWriter
writeTo(Object, Type, Annotation[], MediaType, MultivaluedMap, OutputStream)
このメソッド パラメーターにはパス uri が含まれていないため、カスタム jibx プロバイダーは、Java 型をマーシャリングするために使用する必要があるメッセージ バインディング バージョンを認識できません。これを回避する方法はありますか?