問題タブ [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 - 別のバンドルのリソースを使用する
乙女座の SpringDM でファイルをロードする際に問題があります。その理由はもちろん私です、私は何か間違ったことをしています。
これは状況です: bundleA には、いくつかの一般的な初期化を実行するクラスが含まれています (一般的な構成ファイルからのデータでテーブルを埋めます)。
bundleB には、とりわけ、bundleA の初期化クラスのより具体的なバージョン (拡張) が含まれています (Spring ファイルでは、bundleA のクラスが bundleB のより特殊なクラスの親であることも指定します)。
bundleC は Web バンドルで、bundleB を呼び出します (最初に bundleA を呼び出します)。
ただし、bundleB/bundleA は構成ファイルを見つけることができないようです。java.io.FileNotFound 例外が発生します (ファイルが存在しません)。
bundleA の構成ファイルをクラスパス リソースとして定義しました。
Bean が作成され、Autowired アノテーションを使用して初期化クラスに注入されます。ただし、ファイルを使用しようとするとすぐに例外が発生します。
私のアプローチに「一般的な」欠陥はありますか? 他のリソース ローダーを使用する必要がありますか? 他の提案はありますか?
質問の一部が明確でない場合はお知らせください。明確にしようとします...
ありがとう!
eclipse - spring dm 依存関係の問題 - Apache Commons ロギング
私は春の dm の初心者なので、私の単純な質問を許してください。依存関係のある spring-osgi パッケージをダウンロードしました - 1.2.1.必要なプラグインを /lib フォルダーからインポートすると、プラグインは org.apache.commons.logging を必要とするため検証されません。
私はロギング ライブラリを持っていますが、この問題を解決して実際のプロジェクトの開発を開始できるように、どこにドロップすればよいかわかりません。
osgi - 「Import-Bundle」と「Require-Bundle」の違いは何ですか?
Spring Source dmサーバー固有のImport-BundleとOSGiのRequire-Bundleの違いは何ですか?
プロジェクトでImport-BundleとRequire-Bundleのどちらを使用するか混乱しています。
spring - Glassfish 3.1 で Spring DM を使用して単純な Web バンドルをデプロイできない
OSGI と Spring DM は初めてです。Glassfish 3.1で戦争として単純な Hello World アプリケーションを展開しようとしています が、深刻な問題に直面しています。3 つの非 Web OSGI バンドルがあります。
そして、1 つの Web バンドル helloworld-web.war。Glassfish asadmin "deploy --type=osgi .jar/war" を使用して osgi バンドルをデプロイしています。デプロイは正常に完了し、server.log にエラーはなく、4 つのアプリケーションすべてが Web ベースの管理コンソールに表示されます。しかし、http と 8080 ポートを使用してアクセスする Web アプリケーションにアクセスできません。404 が表示されます。これは、アプリケーションが利用できないことを意味します。すべてのバンドルに MANIFEST.MF を定義する標準的な方法を使用し、web.xml で必要な要素も定義しました。
誰かがこの問題の根本原因を調査するのを手伝ってくれませんか? また、Glassfish で Web バンドルを作成してデプロイするための基本的な手順を誰かが提供してくれれば、非常にありがたいです。多くの Web を閲覧しましたが、必要なすべての手順を構造的に定義する 1 つの場所を見つけることができませんでした。
java - Spring-DM エクステンダーを使用する
OSGI コンテキストをシャットダウンする前に、しばらく待つ必要があります (現在実行中のタスクを終了するまで、しばらくお待ちください)。Beanshutdown.wait.time
のプロパティに出くわしました。extenderProperties
このOSGiフラグメントを使用して目標を達成する方法を教えてください。フラグメント バンドルを既存の OSGI バンドルにアタッチできると思います。
前もって感謝します。あなたの助けに感謝。
import - org.apache.felix:maven-bundle-plugin および Export-Package/Import-Package に関する問題
ワイルドカードを指定して、 maven-bundle-pluginによるパッケージのインポート/エクスポート方法を構成しようとしています。*
以下の構成では、エクスポートまたはインポートされるパッケージはありません...
誰にも手がかりはありますか?
編集:私が得る正確なメッセージは
バンドルがアクティブでないためです。
編集:バンドルを開始すると、次のようになります。
編集: スプリング バッチ コアのみを使用すると、起動時に体系的に次のエラーが発生します。
編集:
osgi - ファイルのアーティファクトIDを判別できません
インポートパッケージの例外が発生していましたが、menifistファイルを使用して解決しました。しかし今、私は私が知らない他の例外を取得しています、私は単純なバンドルを展開することができます、しかしこの特定のバンドルはピックアップディレクトリからvirgoサーバーで実行されていません。
サーバーログと発生したエラーを添付しました。
あなたから聞いて楽しみにして。
メニフェストファイル
osgi - OSGi バンドルのアクティブ化中にファイルを開く
OSGi バンドル ( cluster_implementation
) を Declarative Service (DS) コンポーネント定義で定義し、エクスポートされたサービスを 1 つ、アクティブ化メソッドを 1 つ、非アクティブ化メソッドを 1 つ指定しました。
Activate メソッドの本体で、ファイル システムには存在しないが OSGi バンドル自体にバンドルされている 1 つのファイルにアクセスする必要があります。activate メソッドの間、ファイルの内容はInputStream
usingとして取得されますjava.lang.ClassLoader:getResourceAsStream
。
これはほとんどの場合機能しますが、機能しないケースが 1 つあります。私のアプリケーションでは、によってエクスポートされたサービスcluster_implementation
は、サービス レジストリ、宣言型サービス、または spring-dm を介して他のバンドルから参照できます。コンポーネントのアクティブ化ポリシーはdelayed
、サービスへの最初の参照が発生したときにアクティブ化されるようになっています。
Declarative Service コンポーネントからの参照が原因でアクティベーションが発生した場合、ファイルの内容は正常に読み取られます。代わりに、spring-dm コンポーネントがサービスを必要としているためにアクティベーションが発生した場合InputStream
、リソースの はNULL
! 今のところ、コンポーネントのプロパティを設定してコンポーネントをすぐにアクティブにすることで問題を解決しましたimmediate="true"
が、私の要求は次のとおりです。
- DS コンポーネントのアクティブ化中にリソースのコンテンツをストリームとして取得することはできますか?
- これが合法である場合、spring-dm を介してアクティブ化すると、ストリームとしてのリソースにアクセスできなくなるのはなぜですか? ところで、リソースはそこにあります-私がやれば、
Bundle.findEntries
それを見ることができます!
私が使用している OSGi フレームワークは Equinox 3.6 です。
java - Springでidでosgiサービスを取得するにはどうすればよいですか?
ここで春の初心者。
バンドルの1つに次のように定義されたosgiサービスがあります。
別のバンドルからBundleContext
doing getServiceReference
(passing down IModelInterpreter.class.getName
)を介してアクセスできることはわかっていgetService
ます。
IModelInterpreter.class.getName
インターフェイス(として渡される)を使用する代わりに、ID(myModelInterpreter)を介してサービスを取得する方法はありgetServiceReference
ますか?
助けていただければ幸いです。