問題タブ [blueprint-osgi]

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 投票する
2 に答える
2894 参照

spring - Struts1 アクションから Gemini Blueprint アプリケーション コンテキストにアクセスする方法は?

古き良き戦争プロジェクトでは、 を追加するだけで、ほとんど機能ContextLoaderListenerしますweb.xml-使用できます

Actionたとえば、Struts 1 クラスからアプリケーション コンテキストにアクセスするには、構成プロセス全体が十分に文書化されています。Bean が他のアプリケーションによって作成されている場合は、JNDI から Bean を検索できます。

しかし、この古き良き Web アプリケーションのアーカイブを Web アプリケーション バンドルに移植し、JNDI の代わりに OSGi サービス参照を使用したい場合はどうすればよいでしょうか。上記の方法は、Web アプリケーション内で Bean を管理することだけを Spring に実行させたい場合でも機能します。上記のユーティリティ メソッドを使用して Bean をインスタンス化し、それらを取得できます。また、OSGi サービス参照を解決するために Gemini Blueprint (以前の Spring DM) を正常にセットアップしました。

問題は、Gemini ブループリントと Spring Struts が並行して実行され、お互いを認識していないように見えることです。上記のユーティリティ メソッドによって返されたコンテキストには、OSGi サービスからインポートされたものなど、Gemini ブループリントによって作成された Bean が含まれておらず、Spring Struts によって解析された XML 構成にブループリント スタイルの OSGi サービス参照を追加すると、ひどく死んでしまいます。

Struts 1 内から Gemini Blueprint アプリケーション コンテキストにアクセスするには、何をする必要がありますActionか?

ログ

ログから厳選された行:

最初のセクション (上部の唯一の行を除く) はContextLoaderListener、Spring ContextLoader を起動してプロセスMETA-INF/spring/wfadmin-context.xmlを実行するように構成されていることを示しています。

2 番目のセクションは、Gemini ブループリントがこれがブループリント バンドルであることを検出し、構成から独自のコンテキストを開始することを示していますMETA-INF/spring/wfadmin-{,osgi-}context.xml。また、BeanwfEngineが OSGi サービスから正常にインポートされたこともわかります。

3 番目のセクションは、Spring Struts アプリケーション コンテキストでse.sunstone.util.web.AbstractActionBean にアクセスしようとしたときにmy がどのように停止するかを示しています。Beanのみが含まれているwfEngineため、これは予想されますが、含める場合workflow-context.xmltestBeanInMetaInfSpringWorkflowContextXml

(workflow-context.xml適切なxmlns:osgi定義で) では、Web アプリケーションは起動さえしません。

Spring Strugs プラグインにアプリケーション コンテキストを Gemini ブループリントと共有するように指示する方法があればいいのにと思います。これは可能ですか?

完全を期すために、Spring-Blueprint 構成は次のようになります。

META-INF/spring/wfadmin-context.xml(両方でロード):

META-INF/spring/wfadmin-osgi-context.xml(Gemini ブループリントによって読み込まれます):

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

java - JBoss Fuse Fabric に MBean (JMX) を登録する最も簡単な方法は?

JBoss Fuse Fabric (v7.2.0.redhat-024) で実行するサービス用のカスタムMBeanを作成しました。

  • インターフェース:com.mycompany.myservice.MyServiceManagerMBean
  • 実装クラス:com.mycompany.myservice.MyServiceManager

MBean を JBoss Fuse で登録または「検出」する最も簡単な方法は何ですか?

以下を blueprint.xml に追加しようとしましたが、うまくいかないようです:

サービスをデプロイするプロファイルで JBoss Fuse Fabric を実行し、JConsole を起動して、org.apache.karaf.man.Mainという名前の最初のローカル プロセスに接続します (そのうちの 2 つがあります)。

それでも、MBean が見つかりcom.mycompany.myserviceません。[MBean] タブに表示されることを期待していますが、そこにはありません。

対照的に、このツリー ノードの下にすべてのデータソース jmx Bean が表示されます。

com.mycompany.anotherservice.datasources.

ただし、データソース MBean はjmxEnabled=trueを設定することによって構成されているため、独自の MBean を構成および公開する方法について、私は賢明ではありません。

ここで何をする必要があるか教えてください。

前もって感謝します。

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

osgi - ブループリントを使用して OSGi 参照リスナーにトランザクションを注入する

他の OSGi バンドルによって登録されたサービスを追跡する参照リスナー クラスを持つ OSGi バンドルがあります。次のように設計図を使用して参照リスナーを構成し、必要なすべての Aries バンドルを Felix にデプロイしました。

この構成ではすべてがうまく機能し、サービスが行き来するときに MyServiceMonitor クラスの bind メソッドと unbind メソッドが呼び出されます。次のステップとして、bind メソッドでデータベースにもデータを書き込む必要があるため、MyServiceMonitor にエンティティ マネージャーを挿入し、Bean タグを次のように変更してトランザクションを作成しようとしました。

bind メソッドのトランザクションを作成しようとすると、バンドルを開始すると以下の例外が発生します。tx:transaction タグを削除すると、バンドルは問題なく開始されますが、同じブループリント構成で他の (非参照リスナー) Bean でエンティティ マネージャーとトランザクションを使用できます。

OSGi に比較的慣れていないので、これが予期される動作であるかどうか、またそうである場合、参照リスナー内で DB 操作を実行する適切な方法は何かを理解できませんでした。それに関する洞察はありますか?

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

jpa - ServiceMix / ブループリント / JPA 統合

JPA / ServiceMix 4.5.1 / camel-jpa 2.10.4 / Blueprint を統合しようと 1 週間を費やしてきました。私は現在 OpenJPA を使用していますが、それに縛られていません。servicemix が使用する aries jpa のバージョンは 0.3.0 です。

過去に取得できないスタック トレースは次のとおりです。

いくつかのバリエーションを試しました。これが私の現在の構成です:

persistence.xml:

camel-context.xml

エンティティ Bean (groovy で記述)

BasicDataSource、org.springframework.jdbc.datasource.SimpleDriverDataSource、com.mysql.jdbc.jdbc2.optional.MysqlDataSource など、DataSource の複数の異なる実装を試みました。すべてが IllegalArgumentException を引き起こします。

また、JNDI の使用を控え、代わりにデータ ソースを persistence.xml で直接定義しようとしました。mysql ドライバーをインポートしていないため、OpenJPA バンドルで ClassNotFoundException が発生します。これを camel-context.xml で定義することを好み、OpenJPA jar を再バンドルしないことを好みます。

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

jetty - 1 つの Jetty エンドポイントを持つ複数の JAXRS Bean

Apache FUSE ESB で同じベース URI を持つ 2 つの JAX-RS サービスの構成を手伝ってくれる人はいますか? JBoss FUSE 6.0 リリースを karaf コンテナー、Apache Camel、および CXF (JAX-RS) と共に使用しています。設定は Blueprint で行います。JAX-RS サービスを 1 つだけ構成すると、すべてが正常に機能します。

ベース URI で 2 つの JAX-RS Bean を提供しようとしていhttp://localhost:9001/rsます。最初の Bean は ashttp://localhost:9001/rs/rest1で、2 番目の Bean はhttp://locahost:9001/rs/rest2.

jetty エンドポイントで 2 つのキャメル コンテキストを定義しました。構成済みのインスタンスを 2 つだけ使用する必要があると思いますが、これを行う方法がわかりません。

ここに私のキャメルコンテキストがあります:

両方の Bean がサービス参照として挿入され、ルートの 1 つにコメントするとすべてが機能します。

camel でこれを設定する方法について何か提案はありますか?

乾杯、 オリバー

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

blueprint-osgi - osgi-blueprint 静的メソッドの呼び出し

設計図から静的メソッドを呼び出す方法はありますか? aries ブループリントのドキュメントに従って、静的関数を使用してオブジェクトを作成できますが、静的関数を提供して何らかの機能を実行するクラスに対してそれを実行できるかどうかを見つけることができませんでした。

ありがとうラリット