問題タブ [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.
spring - OSGi ブループリントとスプリング構成を組み合わせる
Spring 構成と OSGi Blueprint (Gemini Blueprint など) の組み合わせに関する良い/ベスト プラクティスはありますか? どの XML ファイルを使用していますか? それらを OSGi バンドル ( META-INF/spring
、OSGi-INF
) のどこに配置しますか? Gemini 以外のブループリントの実装と組み合わせてバンドルを再利用できるのは、次のうちどれですか?
背景: 現在、Spring/Spring DM から Spring/Blueprint への切り替えを進めています。ブループリントが要素を定義していることを認識してい<bean>
ます。ただし、Blueprint 仕様の限られた Bean 定義機能がすべてのニーズを満たしていないという状況に直面することがあります。そのため、バンドル内で Spring 構成を使用し、OSGi サービスを介してバンドルをワイヤリングするために Blueprint を使用することは良い選択のようです。
java - Spring-DM OSGI サービスと @Autowired に関する問題
Spring-DM と @Autowired で Osgi サービスの問題に直面しています。Spring Bean + OSGI サービスを次のように定義しました。
別のバンドルから、次のような xml Bean 定義で問題なくこのサービスを参照できます。
私の問題は、次のような @Autowired 注釈の使用に依存しています。
古典的なエラーが発生しています:
@Qualifier を削除すると、次のエラーが発生します。
これにより、Spring Bean レジストリに OSGI サービスがあると思います...何が間違っているのでしょうか?
参考までに、セッターで @ServiceReference を使用して OSGI サービスを注入しようとしましたが、Spring-DM はそれを注入しません (いくつかの nullpointerexception があります)。
spring-mvc - OSGI - サービス バンドルにロードされたアプリケーション リソースにアクセスできない
Spring MVC で OSGI を使用しています。詳細は次のとおりです。
バンドル b1-メッセージ ソースを Bean として宣言します。メッセージ リソースは、bundleb1 のサービスで完全に自動配線されています。xml のメッセージ ソースのエントリは
メッセージソースは、バンドル b1 の osgi-context.xml で次のようにサービスとして公開されます。
メッセージ リソースを WAB バンドルにインポートするには、WAB の osgi-context.xml に次のエントリを作成し、バンドル b1 によって公開されている messageSource サービスをインポートするために次のエントリを作成します。
注 - WAB で messageSource Bean を作成していません (*-servlet.xml で messageSource を定義していません)。
問題は - WAB に配置されたサンプル Jsp をヒットすると、エラーが発生することです。
分析 - Spring コードをさらにデバッグすると、webapplication コンテキストで使用される messagesource のタイプが DelegatingMessageSource であることがわかりました。しかし、バンドル b1 からインポートされた messageSource は、タイプ InitializableMessageSource のオブジェクトを公開します。これは、webapplication コンテキストが、WAB の osgi-context.xml を介してインポートされた messageSource で初期化されていないことを意味します。
PLSヘルプ...
eclipse-virgo - Maven-Pax-Plugin と Gemini Blueprint /Spring DM
次の状況: OSGi アプリケーションを開発しており、最終製品は Eclipse Virgo を使用する必要があります。
OSGi と Spring と連絡を取るために、私は現在 OSGi Blueprint の概念を調査しています。maven-pax-plugin と Gemini Blueprint/Spring-DM を使用しようとしていますが、mvn pax:provision を実行すると、次のエラーが発生します。
では、pax で Gemini Blueprint または Spring DM を有効にするにはどうすればよいでしょうか?
java - springDmでの戦争展開のステータスを確認する方法は?
私は、SpringDMベースのWebアプリケーション用にMavenベースのsurefireテストとAbstractConfigurableBundleCreatorTestsクラスを使用してjunitテストを実行しようとしています。
戦争バンドルが正常に展開されているかどうかを知る方法は?
apache-camel - camel / fuseesb にデプロイされた場合の drools のデバッグ
私は現在、https ://github.com/FuseByExample/camel-drools-example にある camel-drools の例に基づいて構築しています。
ルートは次のとおりです。
私は自分のプロジェクト用にこの例を拡張し、より複雑なルールとさまざまなファクトを追加しました。これをデバッグしたいと思いますが、キャメル/ヒューズ環境で Drools デバッグを機能させる方法がわかりません。
アジェンダ ビュー、ワーキング メモリ ビューなど、Drools IDE が提供するさまざまなデバッグ ビューをすべて表示したいと考えています ( http://docs.jboss.org/drools/release/5.5.0.Final/のとおり)。 drools-expert-docs/html/ch06.html#d0e8478 )。Eclipse プロジェクトを Drools プロジェクトに変換しました。新しい「Drools アプリケーション」デバッグ構成を作成しましたが、「メイン クラス」セクションに何を入れればよいかわかりません。ルールの実行を呼び出してファクトを作業メモリに挿入するのはラクダなので、私は独自のメイン クラスを持っていません。
アプリケーションを通常の Java アプリケーションとしてデバッグしようとしたので、アプリケーションの drools 部分が実行される前にブレークポイントを設定しました。通常のブレークポイントを設定して workingMemory 変数をクリックすると、drools の 'Working memory' または 'Agenda' ビューに入力する必要があるという drools のドキュメントに従いましたが、常に 'The selected working memory is empty' と表示されます。そうではないことはわかっていますが。考えられるすべての WorkingMemory 変数をクリックしてコードを最初から最後までステップ実行しましたが、「選択した作業メモリが空です」というエラーが表示されます。
camel を使用してデプロイしたときに、誰かが drools を正常にデバッグできましたか? もしそうなら、あなたはどのような措置を講じましたか?
乾杯。
tomcat - 別のバンドルから静的コンテンツを提供するサーブレットへのディスパッチ/転送
Spring と OSGi にまったく慣れていない開発者であり、久しぶりに Tomcat に戻ってきた私は、この質問を適切に行うことができるかどうかさえわかりません。しかし、誰かが私が行き詰まっている場所と、どのように進めるべきかを理解してくれることを願っています.
このセットアップには、Equinox OSGi コンテナーに Tomcat 7 バンドルが含まれています。バンドルはMainDispatcherServlet
、 を拡張する " " を提供しますorg.springframework.web.servlet.DispatcherServlet
。他のサービス バンドルは、がリッスンorg.springframework.web.servlet.mvc.Controller
する OSGi ホワイトボードにインスタンスを登録します。URL パターンを登録済みのコントローラーにマップする API を提供します。これにより、個々の要求のハンドラーを識別するために使用されます。多くの場合、サービス バンドルは javax を実装し、登録のためにラップします。MainDispatcherServlet
MainDispatcherServlet
SimpleUrlHandlerMapping
GenericServlet
ServletWrappingController
このくらいはスムーズに動作します。今、私は次のものが必要です
静的リソース
これらのバンドルで、イメージや jsps などの静的リソース (静的と見なされるかどうかは不明) にディスパッチします。
<mvc:resources>
SO で検索すると、正確な xml がよくわからなくても、クライアント バンドルの魔法でこれを行うことができるようです。MainDispatcherServlet
しかし、私が正しく理解している場合、リクエストは要件である を通過しません。
したがって、私が現在取っているアプローチは、org.apache.catalina.servlets.DefaultServlet
上記のように a を使用して Controller にラップすることです。これはこれを達成するための良い方法ですか?ここでの問題は、DefaultServlet
が必要でServletContext
あり、それを与えるものがないことです。
コントローラーに挿入できるを作成する簡単な方法はありますか?ServletContext
静的リソースに転送
さらに、 を使用してバンドル内の jsps にアクセスServlet
できるようにするには、同じクライアント バンドル内に別のクライアント バンドルが必要です。forward
RequestDispatcher
ServletContext
要約すると、(エレガントでなくても)実行可能ですか?もしそうなら、どうすれば ServletConteext を作成できますか? これが実行できない場合、代替手段は何ですか?
これはすべて非常に困難です。私は実装されたプロトタイプを求めていません (できません:)) が、「Y に X を挿入し、Z でラップすると、すべて設定されます」のような簡潔な指示よりも感謝します。
blueprint-osgi - ブループリント、春のDM、DS
Blueprint、Spring DM、および DS (Declarative Services) について少し混乱しています。
私が思う形:
- 春のDMが先に来ました。
- OSGi はこのアイデアを気に入り、Spring DM に基づいて Blueprint 標準を定義しました。
- Spring DM は Blueprint のリファレンス実装になりました。
いいえ?
そして、DS (Declarative Services) はどのようにこの状況に適合するのでしょうか?
osgi - OSGiコンテナでSpringとブループリントを混在させる方法は?
blueprint はより適切にサポートされており、JBoss Fuse を含む多くの OSGi コンテナーで広く採用されるようです。残念ながら、Spring には、現在のブループリント (CMIIW) では実装が難しいと思われる多くの機能があります。次のような機能: ehcache の注釈 (例: cache:annotation-driven)、contextAware Bean。
私の質問は、それらを混在させることは可能ですか (Spring DM とブループリント)? もしそうなら、どのように?そこに働くコードはありますか?
参考までに、Spring DM を離れた理由は 1 つあります。青写真を新しい標準として
最近、Spring DM を使用すると、分散 OSGi サービスがサポートされていることに気付きました。
ありがとう