JAX-RSアプリケーションでカスタムMessageBodyWriter<Object>
実装を登録しました。このライターは、文字列を含むさまざまなタイプを変換できます。CXFで文字列用のカスタムMessageBodyWriterを提供する方法
カスタムコンバーターは他のタイプでも正常に使用されますが、文字列の場合はCXFでは考慮されません。isWriteable
も呼び出しません。 (これはCXF 2.xでは異なっていたので、CXF 3.xには回帰があるようです)
CXF 3.1.11コードを実行すると、ProviderFactory.messageWriters
のリストに2つのエントリがあることがわかります。StringTextProvider
、JAXBElementTypedProvider
)私のカスタムプロバイダの前に。最初のものは文字列を変換する必要があり、リストの最初のものはCXFが優先します。
私のプロバイダを文字列の優先プロバイダにするにはどうすればよいですか?例えば。 StringTextProvider
を削除することはできますか?または、私のプロバイダが最初に来るようにリストを並べ替えることは可能ですか?