問題タブ [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.
eclipse - パスが長いため、Eclipseプラグインがdllをロードしていません
私はEclipseプラグインを構築しています(Notesプラグインですが、最終的にはEclipseプラグインです)。私のプラグインが依存しているプラグインの1つは、ネイティブdllをロードする必要があります。
問題は、そのようなdllがディスクのどこにあるかに応じて失敗することです。特定のしきい値よりも長い場合、以下のエラーが発生します
java.lang.UnsatisfiedLinkError:nlsxbe(ファイル名または拡張子が長すぎます。)at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:952)at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:921)atjava。 lang.System.loadLibrary(System.java:452)at lotus.domino.NotesThread.load(Unknown Source)at lotus.domino.NotesThread.checkLoaded(Unknown Source)at lotus.domino.NotesThread.sinitThread(Unknown Source)at com .atempo.adam.lotus.plugin.views.TopicView.createPartControl(TopicView.java:609)
パスをPathenvvarに追加し、dllを登録しました。私の環境は、Ms vista profesional、java1.5、eclipse3.4(およびロータス8)です。
誰か手がかりがありますか?
よろしくお願いします。
java - EclipseStarterクラスから使用できるようにOSGi環境を構成するにはどうすればよいですか?
現在、EclipseStarterクラスの機能を使用していくつかのバンドルを実行しようとしています。プログラムをEclipseから直接実行すると、OSGiサービスバンドルがロードされ、他のバンドルをインストールして開始できます。
しかし、Javaプログラムを実行可能jarファイルにエクスポートしてコマンドラインから実行すると、環境はOSGiサービスバンドルの代わりに「SystemBundle[0]」と呼ばれるバンドルをロードします。新しいバンドルをインストールしようとするたびに、Nullpointer-Exceptionが発生します。
jarファイルからOSGi環境を使用できるようにするには、Frameworkプロパティ内に特別な構成を設定する必要がありますか?現在、次の2つの値のみを設定しています。
アップデート:
私の問題は、使用されているJavaクラスパスに関係している可能性があると思います。このようにFramework-Bundleをクラスパスに追加すると
すべてがうまく機能しています:
しかし、jarファイルのみを実行すると、次のエラーログが表示されます。
現在、Eclipseプロジェクト内の外部ライブラリとしてframework-jar-fileを使用しています。プロジェクトを実行可能ファイルにエクスポートすると、問題が発生すると思います...
BR、
マーカス
java - Javaアプリケーションに最も適したSOAアーキテクチャはどれですか?
私は現在、かなり大きなJava 6アプリケーションに取り組んでおり、機能の一部をサービス指向アーキテクチャーに分割しようとしています。
アプリケーションスペースの主要なSOAフレームワークはOSGiのようで、私はFelixとKnopplerfishを調べてきましたが、これが私の唯一の選択肢ではないことを確認したかったのです。
Webアプリを構築していなくても、SOAPなどのアプリケーションに実際のWebサービスプロトコルを使用することは理にかなっていますか?これも受け入れられますか?
デスクトップアプリケーションでOSGi(Felixなど)の実装を使用したことがありますか?もしそうなら、それはどうでしたか?もっと良いことを知っていますか?
私たちは皆、ここでSOAにかなり慣れていないので、どんな助けでも大歓迎です。
servlets - OSGi HttpService に登録されているサーブレットから OSGi サービス参照を取得するには?
OSGi 環境で実行されている (つまり、OSGi HttpServiceに登録されている) HttpServlet が、そのタスクを実行するためにいくつかの OSGi サービスを呼び出したいと思うのは当然のことです。問題は、サーブレット内でこれらの OSGi サービスへの参照を取得する方法です。
1 つの方法は、次のように OSGi HttpService に登録されている HttpServlet インスタンスに依存関係を注入することです。
OSGi 以外の環境では、サーブレットのライフサイクルが Web コンテナーによって管理され、後で作成されるサーブレット インスタンスにサービス参照が挿入されないため、これが有効なアプローチであるかどうかはわかりません。
OSGi HttpService の実装としてPAX Webを使用する場合、これを解決する別の方法があります。PAX Web は、OSGi BundleContext を特別な属性「osgi-bundlecontext」として ServletContext にエクスポートします。BundleContext を使用して、必要なサービス参照を取得できます。
ただし、このアプローチはかなり見苦しく、OSGi HttpService の具体的な実装に結び付けられます。この問題に対する他の (そしておそらくより良い) 解決策を知っていますか?
java - OSGi felix:ホストアプリケーションとバンドルの間でクラスを共有することは可能ですか?
ホストアプリケーション内で、setおよびgetメソッドを提供することにより、Vehicleという名前のクラスのインスタンスをOSGiワールドに転送するために使用される単純なpushServiceを実装しようとしました。サービスを使用できるようにするために、サービスインターフェイスとVehicleクラスの両方をjarファイルにエクスポートし、そのファイルをバンドル内にインポートしました。このファイルはサービスを使用する必要があります。
felixフレームワークとバンドルをインスタンス化するホストアプリケーション内でVehicleクラスを使用しようとするたびに、リンケージエラーが発生しました。次のブログエントリ(http://frankkieviet.blogspot.com/2009/03/javalanglinkageerror-loader-constraint.html)を読んだ後、このエラーが発生する理由を理解しました。しかし、私には自分の問題を解決する方法がわかりません。
ホストアプリケーションとOSGiインスタンスの間でクラスを共有することは可能ですか?jarファイルをインポートする代わりにリフレクションを使用する必要があるかもしれませんか?私はそのライブラリ(http://code.google.com/p/transloader/)を調べましたが、このライブラリが私の問題を解決できるかどうかはよくわかりません...
BR、
マーカス
java - OSGi とレガシー ライブラリ
私はしばらくの間 OSGi を調べてきましたが、「レガシー」ライブラリ (OSGi バンドルとしてではなく、プレーンな JAR としてリリースされているもの) を処理する最善の方法について疑問に思っています。
これらを処理する最善の方法は何だと思いますか? マニフェスト ファイルを変更し、最小限のバンドル固有の情報を追加してから、それらを再パッケージ化することは、現時点で私が行っていることですが、どういうわけか間違っているようです。これらの JAR に対して手動の依存関係管理を使用する必要がありますか (アプリケーションの特定の部分でのみ使用される可能性が高いライブラリに対してこれを行います)。
それらが利用可能な限り、私は Eclipse のバンドルを使用しています (私は OSGi プラットフォームとして Equinox を使用しているため、これはバンドルとして利用可能なライブラリに対してうまく機能します)。
知っておくべき Eclipse バンドル以外のバンドル リポジトリはありますか?
eclipse - フィーチャーで eclipse.buildscript タスクを実行するとフラグメントが欠落する
foo という機能、foo というプラグイン、および単一のフラグメント foo.win32.x86 があります。
機能の ant ファイル内で eclipse.buildscript への呼び出しを実行し、機能、プラグイン、およびフラグメントの build.xml を作成できるようにする必要があります。ただし、取得できるのは機能とプラグインの build.xml だけです。
foo の feature.xml:
foo プラグイン MANIFEST.MF ファイル:
foo plugin.xml ファイル:
foo.win32.x86 MANIFEST.MF ファイル:
フラグメントのbuild.xmlを取得できない理由を誰か説明できますか?
フラグメントの eclipse.buildscript への呼び出しを強制すると正常に動作しますが、これは目的を無効にしませんか?
ありがとう
java - Persistence.xml と OSGi (Equinox)
現在、OSGi を使用してテストしています。これをEclipseで実行しています。DAO レイヤーを OSGi ソリューションの一部として使用したいのですが、最初の障害は次のエラーです。
persistence.xml ファイルをさまざまな場所に配置しようとしましたが、役に立ちませんでした。 私が間違っていることについてのアイデアはありますか?
persistence.xml を手動でロードする方法はありますか?
アクティベーターは次のようになります。
私のディレクトリ構造は次のようになります。
代替テキスト http://www.freeimagehosting.net/uploads/7b7b7d2d30.jpg
これが私のManifest.MFです
HibernateBundleには、すべての Hibernate および Persistence Jar が含まれています。
ここに私のPersistence.xmlがあります
マニフェストのクラスパスで試したことは運が悪い:
Bundle-ClassPath: ., META-INF/persistence.xml
Bundle-ClassPath: ., ../META-INF/persistence.xml
Bundle-ClassPath: ., /META-INF/persistence.xml
Bundle-ClassPath: ., ./META-INF/persistence.xml
Bundle-ClassPath: ., META-INF
バンドル クラスパス: ., ../META-INF
Bundle-ClassPath: ., /META-INF
バンドル クラスパス: ., ./META-INF
Bundle-ClassPath: ., C:\Workspaces\OSGiJPA\Dao\META-INF\persistence.xml
Bundle-ClassPath: ., C:\Workspaces\OSGiJPA\Dao\META-INF
java - Mavenリポジトリ内のOSGIバンドルをEclipseに認識させる方法(ローカル&|リモート)
Mavenを介して構築されたプロジェクトがあります。各モジュールはosgiバンドルとして構築されています。
Eclipse内では、モジュールにはプラグインの性質もあります。一部のモジュールには外部依存関係(log4j、apache commons、...)が必要です。これらは、Mavenリポジトリー(たとえば、OBRでもあるSpring Enterpriseリポジトリー)からプラグインとしても利用できます。
Maven自体はこれらの依存関係を解決するのに問題はありませんが、Mavenリポジトリを使用してプラグインとしてこれらのバンドルを取得して解決するようにEclipseを説得するにはどうすればよいですか(これらのラッパープラグインのそれぞれに対して作成したくない)?
Eclipseにインストールできる「MavenProvisioner」はありますか?