問題タブ [spring-dm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
385 参照

spring - Spring Dynamic Modules のバンドルにエクスポートされたサービスが挿入されない

Spring Dynamic Modules を初めて使用しています。バンドルを介してサービス (単純な listofValuesDAO Bean) を公開しようとしましたが、Bean を使用するために別のバンドルに挿入しようとしています。以下は、サービスが公開された Bundle1 の osgi-context.xml の構成タグです。

osgi-context.xml の以下のタグを使用して、Bundle2 で取得しようとしています。

問題は、以下の構成を使用して Bundle2 の Bean に注入しようとしたときです。

システムは以下の例外をスローします:

以下は、私の ExportServiceImpl クラスのプロパティです。

誰かがこの問題を解決するのを手伝ってくれませんか?

0 投票する
2 に答える
1020 参照

osgi - OSGi でのサービスの利用と新しいオブジェクトの作成の違い

私は CQ5 を初めて使用します。OSGi の概念を調べているときに、サービスと呼ばれるものを見つけました。そのためのインターフェースと実装クラスを持つバンドルを作成しました。これはメソッドをオーバーライドします(単に文字列「hello world」を返します)。そのクラスをjsp /一部のJavaクラスで利用したい場合は、その新しいインスタンスを作成しますオブジェクトとそのメソッドを使用します。私の質問は、新しいオブジェクトを作成することとサービスを利用することの正確な違いは何ですか. また、新しいオブジェクトに対するサービスの利点についても言及してください。また、spring-DM を使用したサービスの構成を手伝ってください。

0 投票する
2 に答える
6257 参照

apache - camel Bean メソッドのパラメーター変換

camel ルートを作成しています。最初のステップは問題ありませんが、作成した別の osgi バンドルのメソッドを呼び出すのに問題があります。私のサービスはパラメーターに Long 値を想定していますが、pojo にはこの ID しかありませんでした。

私のサービス :

私のルート:

そして、ルートの私のデータ形式:

このコードで、y は NoTypeConversionAvailableException を取得しました

型: my.company.MyDto から必要な型: java.lang.Long の値 MyDto [myId=141564] に変換できる型コンバーターがありません

Dto を変換する場所が見つかりません。

ルートの構造と同じ構造の dto を Service に期待させようとしましたが、同じ間違いがあります。

何か案が?

0 投票する
1 に答える
75 参照

spring - API を介して OSGI で Spring コンテキストを作成する

私の質問をさらに明確にするために:

キャメルルートを含むSpring xmlファイルがあります。このルートを BundleActivator でブートストラップしたいと考えています。SpringContext を初期化して開始し、OSGI レジストリに登録するための OSGI の世界での手順は何ですか。API を介してこのカスタムを実行したいのですが、Spring DM を使用するのではなく、これを制御する必要があります。OSGI クラスを使用する必要があることを理解しています。従うべき例:

これはルートを開始しません。

ありがとう。

0 投票する
1 に答える
738 参照

spring - OsgiBundleXmlApplicationContext を WebApplicationContext の親として設定する方法

私の Camel (2.14.0) アプリケーションでは、Spring Web Services を使用して Camel ルートをトリガーします。アーティファクトは OSGi バンドルとしてビルドされ、Karaf (3.0.2) にデプロイされます。

最初のバージョンでは、JVM 内部 Web サーバーを使用しorg.springframework.remoting.support.SimpleHttpServerFactoryBeanて Web サービスを公開するように spring-ws を構成しました。これはうまくいきます。しかし、あまり OSGi 風ではありません。org.springframework.ws.transport.http.MessageDispatcherServlet代わりに、次のようにサービスとしてKaraf ホワイトボード エクステンダーに公開したいと思います。

これは、「通常の」サーブレットの魅力のように機能します。しかし、MessageDispatcherServletは独自のものを構築したいと考えており、そのコンテキストWebApplicationContextでタイプの Bean を見つけることを期待しています。org.springframework.ws.server.EndpointMappingCamel は、EndpointMappingその spring-ws コンポーネントで使用する必要がある の実装を提供します。

私が直面している問題は、エンドポイント マッピング Bean の同じインスタンスをOsgiBundleXmlApplicationContext、Camel コンテキストを作成する と によって作成されたアプリケーション コンテキストの間で共有する必要があることMessageDispatcherServletです。OsgiBundleXmlApplicationContextmyが の親である場合は、これが当てはまりますWebApplicationContext。の親コンテキストをWebApplicationContext、サーブレットをサービスとして公開している「現在の」コンテキストに設定する方法はわかりません。

WebApplicationContext内からインスタンスOsgiBundleXmlApplicationContext化して MessageDispatcherServlet に渡すと、例外が発生します。

残念ながら、 のWebServiceMessageReceiver( をカプセル化するEndpointMapping) はMessageDispatcherServletプライベート メンバーです。したがって、マッピング Bean を単純な方法で設定することはできません。

コンテキスト階層を作成する方法はありますか? または、Bean インスタンスを別の方法でコンテキスト間で共有できますか?