問題タブ [dosgi]
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.
osgi - Servicemix 4、DOSGi、およびZookeeper
これは、fusesourceフォーラムとservicemmixフォーラムからクロスポストされています。
DOSGiをFUSEで動作させることができません。私はCXFのDOSGi1.1-SNAPSHOTとZookeeperディスカバリーをFUSE4.1.0.2に取得しようとしています。Zookeepr3.2.1も使用しています。
すべてがFelix2.0.0で完全に機能します。DOSGi Discovery ページの指示に従って、DiscoveryDemoバンドルをインストールします。DOSGiの場合、DSWに はcxf-dosgi-ri-singlebundle-distribution-1.1-SNAPSHOT.jarを使用し、 cxf-dosgi-ri-discovery-singlebundle-distribution-1.1-SNAPSHOT.jarを使用します。 動物園の発見のために。次に、1台のマシンでサンプルサービスimplを使用してサンプルバンドルを開始すると、zookeeperでノードが作成されていることがわかります。次に、別のマシンでサンプルクライアントを起動すると、サービスマシンに出力が表示されます。よく働く。一部のXSDが見つからないため、xmlエラーが無視されるという警告がありますが、何にも影響がないようです。ああ、私も最初にOSGi大要バンドルをインストールする必要があります。
ヒューズに引っ越したとき、そんな運はありません。OSGi大要バンドルにはヒューズが付属しているので、それをインストールする必要はありません。dosgi-riシングルバンドルとdosgi-ri-discoveryシングルバンドルをインストールできるはずですが、それは機能しません。dosgi-riシングルバンドルには、servicemixを使用したあらゆる種類のオーバーラップバンドルがあります。ポート8081についてエラーが発生しますか?または、osgi.http.serviceパラメーターが何であれ、すでに使用されています。どうやら、dosgi-riシングルバンドルにはpax Webサービスが付属しており、servicemixに付属しているservicemixhttpサービスバンドルと同じプロパティを読み取ります。それは私がcxf-dosgi-ri-multibundle-distribution-1.1-SNAPSHOT.zipに切り替えるとき です解凍して、必要なパーツを取り出します。dosgi-riマルチバンドルからdswバンドルを取り出し、インストールします。jdomに依存しているため、運がありません。次に、riマルチバンドルに含まれているjdomをインストールします。これは正常に機能します。次に、dswに戻ると、インストールされるので、どこかに到達していると思います。戻って、ri-discoveryシングルバンドルをインストールします。開始すると、paxロギングサービスのclasscastexceptionが表示され、osgiログサービスなどにキャストできないと表示されます。しかし、これは単なるロギングエラーであり、下部にはhttp://schemas.xmlsoap.org/soap/httpのトランスポートクラスが見つからないと表示されます。。さて、ロギングが台無しになり、いくつかのトランスポートクラスが欠落しています。まあ、明らかにこれは、フェリックスで機能したため、riマルチバンドルから十分にインストールされていないことに起因します。だから、そこに他に何が必要なのか。検査時にcxf-minimal-bundleにクラスがないため、最後のエラーが発生します。だから私はそれをインストールします。ディスカバリーバンドルを開始しようとしましたが、ある種のcorbabroker例外が発生しました。Wtf。このすべてでcorbaを使用しているのは誰ですか?次に、戻ってすべてを元に戻し、riとri-discoveryのシングルバンドルディストリビューションを使い続けようとしますが、servicemixhttpサービスをオフにするだけです。これによりservicemixがクラッシュし、cxf jbiコンポーネントの依存関係が満たされないため、再起動できません。奇数。とにかくそれらを使用しないので、それを無視して、サンプルを開始しようとします。できる' ポートがすでに使用されているために桟橋を開始できないと表示されているため、サンプルを開始します。すでにservicemixhttpサービスをシャットダウンしているので、意味がありません。それから私は突堤を再開します。動作しますか?多分。サービスが登録され、Firefoxを使用してWSDLを参照できますが、zookeeperに登録されていません。ri-discoveryバンドルをシャットダウンして再起動しようとしましたが、nullpointerexceptionが発生します。どうやら、前述のエラーの1つが原因で、ri-discoveryが実際に起動することはありませんでした。それから私はri-discoveryシングルバンドルを分解して内部を引き抜こうとし始めました。中にはいくつかのライブラリがありますが、それがなくてもすべてが明らかに必要であるため、これは機能しませんでした。すでにservicemixhttpサービスをシャットダウンしているので意味があります。それから私は突堤を再開します。動作しますか?多分。サービスが登録され、Firefoxを使用してWSDLを参照できますが、zookeeperに登録されていません。ri-discoveryバンドルをシャットダウンして再起動しようとしましたが、nullpointerexceptionが発生します。どうやら、前述のエラーの1つが原因で、ri-discoveryが実際に起動することはありませんでした。それから私はri-discoveryシングルバンドルを分解して内部を引き抜こうとし始めました。中にはいくつかのライブラリがありますが、それがなくてもすべてが明らかに必要であるため、これは機能しませんでした。すでにservicemixhttpサービスをシャットダウンしているので意味があります。それから私は突堤を再開します。動作しますか?多分。サービスが登録され、Firefoxを使用してWSDLを参照できますが、zookeeperに登録されていません。ri-discoveryバンドルをシャットダウンして再起動しようとしましたが、nullpointerexceptionが発生します。どうやら、前述のエラーの1つが原因で、ri-discoveryが実際に起動することはありませんでした。それから私はri-discoveryシングルバンドルを分解して内部を引き抜こうとし始めました。中にはいくつかのライブラリがありますが、それがなくてもすべてが明らかに必要であるため、これは機能しませんでした。どうやら、前述のエラーの1つが原因で、ri-discoveryが実際に起動することはありませんでした。それから私はri-discoveryシングルバンドルを分解して内部を引き抜こうとし始めました。中にはいくつかのライブラリがありますが、それがなくてもすべてが明らかに必要であるため、これは機能しませんでした。どうやら、前述のエラーの1つが原因で、ri-discoveryが実際に起動することはありませんでした。それから私はri-discoveryシングルバンドルを分解して内部を引き抜こうとし始めました。中にはいくつかのライブラリがありますが、それがなくてもすべてが明らかに必要であるため、これは機能しませんでした。
話の終わり。それを動作させることができません。他の誰かがそれを機能させることができますか?SMX4でディスカバリーサンプルを実行したいだけです。バンドルの競合の問題だと確信しています。これはOSGiが修正することになっているものではありませんか?これは、依存しているjarを教えて、クラスパスを設定するよりも悪いです。少なくともその時、私は最終的に物事を実行するでしょう。
次のステップは、ri-multibundle、dswとjdom、およびri-discoverysinglebundleで再試行することだと思います。次に、いくつかのcxf-fuseバンドルまたはいくつかのcxf-rtバンドルを試して、soapトランスポートの問題を回避します。
メモの編集:DOSGiバンドルをアクティブ状態で表示するだけでは不十分です。あなたがそれらを通してサービスを公開しようとするまで、それらは実際には多くをしません。実行中のDOSGiDiscoverySampleのように、複数のマシンがzookeeperインスタンスにサービスを登録し、他のマシンがそれらのサービスを消費していることを確認する必要があります。
元のcxfバンドルの一部を削除してjettyサービスを再起動し、サンプルサービスを開始することで、前述の最小限のcxfバンドルを使用して、cxfに分散サービスサンプルをSOAPWebサービスとして公開させることができました...またはcxf最小バンドルをインストールし、サービスを開始し、すぐにcxf最小バンドルをアンインストールしてから、jettyを再起動します...それが注文だったと思います。これらはどちらもクリーンなスタートアップからは機能せず、DOSGiを機能させるための手順としてサービスを再起動する必要があるのは悪いことです。インストールしてからアンインストールすると何が起こるのかさえわかりません。アーティファクトが残ってはいけません。
osgi - Distributed OSGiとConfigurationAdminを一緒に使用できますか?
もしも:
- いくつかのサービスをエクスポートするn個のOSGiコンテナーで実行したいバンドルがあります。
- DSを使用して、構成が変更されたときに変更されたメソッドを登録しているので、ConfigurationAdminを介してサービスを更新し、RFC119に従ってインターフェイスをリモートでエクスポートできます。
- Discoveryを使用して、他のボックスの他のバンドルからこれらのサービスを呼び出しています。ConfigurationAdminを使用してこのサービスの中央構成を作成できるため、構成管理を介して構成変更を公開でき、すべてのインスタンスで受信されます。サービスを実行していますか?
私が読んだすべてのことから、ConfigurationAdminはネットワークに対応しておらず、各OSGiコンテナーに対してローカルであるように思われますか?
事前に洞察をありがとう:)
cxf - Apache CXF D-OSGiを使用して分散システムを開発するにはどうすればよいですか?
私の開発環境と要件:Eclipse3.6、Equinoxフレームワーク、Apache cxf-dosgi-ri-singlebundle-distribution-1.2.jar
デモ分散プログラムを試したいのですが、インポートしたcxfjarが正常に動作しなかったようです。まず、ダウンロードしたcxf-dosgiはzipファイルであり、拡張子をjarに変更しただけです。そして、エラーを表示せずにEclipseワークベンチにインポートしました。しかし、osgi、osgi.service、javax.servletで実行しようとすると、大量のコンソールメッセージが赤い色で表示され、パニックに陥ります。
実際、サービス、impl、クライアントバンドルを追加すると、システムが機能しなくなります。cxf-dosgiバンドルを起動するときに何かがおかしいと思います。
誰が私を助けられるか?
web-services - ApacheCXF dosgi を使用して wsdl にアクセスできない
Apache CXF D-OSgi と Eclipse Equinox を開発環境として使用しています。サービスを登録しましたが、IE で wsdl ページを開くことができません。サービス レジスタ コードは次のとおりです。
クライアント プログラムを実行しようとすると、次のエラーが表示されます。
情報: Unhandled event type received: 1 2011-5-10 23:22:04 org.apache.cxf.dosgi.topologymanager.TopologyManager$1 modifiedService 情報: TopologyManager: EndpointListener changed ... 2011-5-10 23:22:04 org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore importService 情報: importService() エンドポイント: {endpoint.id=http://localhost:9000/1, objectClass=[Ljava.lang.String;@988707, osgi. remote.configuration.pojo.address=http://localhost:9000/1、osgi.remote.configuration.type=pojo、osgi.remote.interfaces=, service.imported=true, service.imported.configs=org.apache.cxf.ws} 2011-5-10 23:22:04 org.apache.cxf.dosgi.topologymanager.RemoteServiceAdminListenerImpl remoteAdminEvent 情報: 受信した未処理のイベント タイプ: 1 2011-5-10 23:22:04 org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore importService 情報: importService() エンドポイント: {endpoint.id=http://localhost:9000/1, objectClass=[ Ljava.lang.String;@988707、osgi.remote.configuration.pojo.address=http://localhost:9000/1、osgi.remote.configuration.type=pojo、osgi.remote.interfaces=、service.imported= true, service.imported.configs=org.apache.cxf.ws} 2011-5-10 23:22:04 org.apache.cxf.dosgi.topologymanager.RemoteServiceAdminListenerImpl remoteAdminEvent 情報: Unhandled event type received: 1
java - CXFDOSGiは注釈を無視しています
JAX-RSの例を使用しています。この例には、2つのRESTful Webサービスが含まれています。1つは注釈付きで、もう1つは注釈なしです。
私はそれをMavenで構築し、CXFDOSGiシングルバンドルディストリビューションと一緒にFelixにデプロイします。注釈のないものは正常に機能しますが、注釈のあるものはまったく無視されているようです。ログに次のメッセージが表示されます。
glassfish - Glassfish での DOSGI サポート
Glassfish 3.0.1 で OSGI を使用しています。Jersey REST をリソース層として使用しています。osgi サービスはたくさんあります。それらを分離してクラウドに展開することを計画しています。これを行う 1 つの方法は、http REST 呼び出しを行うことです。しかし、API レベルでサービス間の呼び出しを行いたいと考えています。これを行う 1 つの方法は、DOSGI を使用することです。しかし、Glassfish 3.0.1 は DOSGI をサポートしていないようです。他の提案はありますか?
osgi - R-Osgi を使用してリモートの「エクスポート パッケージ」を取得する方法は?
R-Osgi は、リモートの OGSi コンテナーからサービスを呼び出す方法を提供します。ウェブサイト: http://r-osgi.sourceforge.net .
私は R-OSGi を初めて使用しますが、OSGi コンテナーを小さなものに分割し、R-Osgi によって相互にやり取りしたいと考えています。これは、大きすぎるためです。しかし、R-OSGi は Registered Service の方法しか提供していないようです。Service 以外の 2 つのバンドル間で対話する最も一般的な方法である "exported-package" も広く使用されています。
それで、R-OSGiに精通していて、リモートOSGiコンテナーから「エクスポートされたパッケージ」を使用する方法を知っている人はいますか?
返信ありがとうございます。
osgi - マルチホーム マシンへの Web サービスのデプロイ
OSGi 経由で Apache CXF を使用して、OSGi サービスを Web サービスとして公開しています。「org.apache.cxf.ws.address」プロパティを介して Web サービス uri を設定できますが、これによりサーバー上の単一の IP アドレスに結び付けられます。一部のサービスは、制御できないサーバーに展開する必要があるため、サーバー上のすべてのアドレスにサービスを展開できるようにしたいと考えています。
これどうやってするの?
java - 分散OSGi-すべてのコンテナー間でバンドルを管理する適切な方法は何ですか?
エンタープライズ環境での分散OSGiの利用を検討しています。
次の設定があります。
- 多くのホスト上の10から100のOSGiコンテナーは、さまざまなサービスを提供します。
- これらのサービスの多くは、複数のコンテナによって提供されます。
- これらのサービスの一部は、すべてのコンテナー間で一貫している必要がある場合があります(同じバージョンがデプロイされています)。
すべてのコンテナーにわたってバンドルのライフサイクル(インストール、開始、更新、停止、アンインストール)を管理する適切な方法は何ですか?
いくつかの要件:
- 非常に多くのコンテナが存在する可能性があるため、それらすべてを一緒に処理する必要があります。つまり、バンドルを更新しようとしているとき、1つのコマンドで、そのバンドルがすでに存在するすべてのコンテナーを更新する必要があります。
- コマンドは繰り返し可能である必要があります。最初にテストシステムでコマンドを実行し、テストが完了したら本番システムでまったく同じコマンドを繰り返します。
上記の質問に関する提案に感謝します。
よろしく、マートン
cxf - CXF DOSGI を使用して RESTful サービスから JSON を返す
JAX-RS アノテーションでアノテーションが付けられ、アノテーションを含む単純なサービスがあります@Produces("application/json")
。サービスを登録するときに次のプロパティを設定しました (DS を使用していますが、問題にはなりません)。
アプリケーションを実行すると、URL にアクセスできますが、ブラウザーは次のように返します。
OSGi コンソールに次のように表示されます。
ドキュメントを読んで、おそらく JSON プロバイダーを登録する必要があると思いました。5 月の Activator で、次のように追加しました。
しかし、これは何の違いもありません。
「応答クラス MyClass のメッセージ本文ライターが見つかりませんでした」を修正するにはどうすればよいですか。エラーメッセージ?