私が取り組んでいるプロジェクトでは、いくつかのサーブレットがあり、それらはすべて共通の API (私たちが開発したもの) を使用してデータベースにアクセスします。アイデアは、この機能を共有 jar ファイルから徐々に取り出し、外部アプリケーションが使用できるように JAX-WS Web サービスに配置することです。しかし、Spring を使用してサーブレットを初期化し、jar で定義されたインターフェイスと、同じパッケージと名前を持っているにもかかわらず、Web サービスによって生成されたクラスとの間に型の不一致があるため、壁にぶつかりました。
さらに調べてみると、いくつかのことが起こっているように見えます。
- Web サービスから生成されたソースには、独自のバージョンのインターフェイスが含まれています
- 実装用に生成されたソースは、実際にインターフェイスを実装することはなく、要求に応じてインターフェイスの型のオブジェクトを返すだけです。
- このメソッドは静的ではありませんが、問題が発生すると想像できます
- JAX-B は実際にはインターフェースを処理できないことを読んだことを覚えていますが、これはメソッドの作成中に発見したため、このセクションには当てはまらない可能性があります
これを念頭に置いて、生成された Web サービス メソッドを呼び出して春に Bean を構築する必要があるようですが、その方法がわかりません。インターフェイスを削除することはテスト/拡張性にとって望ましくないため、他の提案は大歓迎です。私が考えることができる他の唯一の解決策は、スプリングではなくコンストラクターでこのクラスを割り当てることです。
前もって感謝します!