問題タブ [karaf]
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.
maven - karaf 3.0.1 が起動しない
solaris ボックス (インターネットなし) で karaf 3.0.1 を起動しようとしていますが、次のエラーが発生します。
karaf: KARAF_HOME の定義済みの値を無視しています mvn:org.eclipse/org.eclipse.osgi/3.8.2.v20130124-134944 を解決できませんでした
と karaf.log で:
2014 年 6 月 30 日 12:21:09 PM org.apache.karaf.main.Main メイン SEVERE: フレームワーク java.lang.RuntimeException を起動できませんでした: mvn:org.eclipse/org.eclipse.osgi/3.8.2 を解決できませんでしたorg.apache.karaf.main.util.SimpleMavenResolver.resolve(SimpleMavenResolver.java:59) の .v20130124-134944 org.apache.karaf.main.Main.createClassLoader(Main.java:315) の org.apache.karaf .main.Main.launch(Main.java:234) at org.apache.karaf.main.Main.main(Main.java:171)
バンドルは適切な場所 (システム フォルダー) にあり、org.ops4j.pax.url.mvn.cfg ファイルには次のように記載されています。
org.ops4j.pax.url.mvn.repositories=\ file:${karaf.home}/${karaf.default.repository}@id=system.repository, \
file:${karaf.data}/kar@id=kar.repository@multi\
http://repo1.maven.org/maven2@id=central、\
http://repository.springsource.com/maven/bundles/release@id=spring.ebr.release、\
http://repository.springsource.com/maven/bundles/external@id=spring.ebr.external
3 つの方法 (サーバー、サービス、クライアント) を使用してフレームワークを実行しようとしましたが、何も機能していないようです。
私の環境は:
KARAF_BASE=/export/home/mehdi/bin/カラフ
KARAF_HOME=/export/home/mehdi/bin/karaf
KARAF_ETC=/export/home/mehdi/bin/karaf/etc
KARAF_DATA=/export/home/mehdi/bin/karaf/data
JAVA_HOME=/opt/temp/jre1.7.0_13
私は少しグーグルで検索し、 -h 127.0.0.1 をクライアントスクリプトに追加するという回避策を見つけましたが、まだ何もありません。
osgi - Karaf 3 で .war Web プロジェクトをデプロイするにはどうすればよいですか?
Karaf 3 では、wab プロジェクトと war プロジェクトを展開できます。OSGi なしの Web プロジェクトを作成しました。それをKaraf 3にデプロイしたいのですが、どうすればいいですか?
netbeans を使用して、Web プロジェクトから war ファイルを作成し、それを使用して .war プロジェクトを Karaf 3 にインストールしました: bundle:install -s file:/path/myproject.war インストールにエラーはありません。しかし、私が行ったときにそれが機能していることはわかりませんhttp://localhost:8181/myproject
。
次に、なぜそれが機能しないのですか?何が問題ですか ?
アドバイス、ご協力ありがとうございました
activemq - java.lang.ClassNotFoundException: バンドルから org.apache.activemq.camel.component.ActiveMQComponent が見つかりません [camel-activemq]
サンプルの activemq アプリケーションを karaf にデプロイしようとしました。バンドルをデプロイして開始しているときに、このエラーが発生しました。これを解決するのを手伝ってください。必要なすべての activemq コンポーネントを karaf にインストールしました。まだ次のエラーが発生します。
java - Karaf で OSGI バンドルとしてサードパーティの jar を取得する際の問題
独自のデータベース システムへの接続に使用される、ソースのないサード パーティの jar があります。jar は実際には Eclipse プラグインだと思います。これは、そのシステムの Eclipse ベースのエディターの lib フォルダーの 1 つから取得されました。
とにかく、Netbeans 7.4 と Karaf 3.0.1 を使用して、この jar の機能を公開するバンドルを開発しようとしています。jar を Karaf にインストールしようとしてもうまくいきません。それを deploy フォルダーにドロップしても、OSGI バンドルとして認識されないため、リストにも表示されません。私は Netbeans で新しい OSGI Maven バンドルを作成し、依存関係として jar を追加し、すべてのシェーディングを試みましたがBundle-ClassPath
、Export-Package
運がありませんでした。ある時点で、私はそれが機能していると思っていましたが、Karaf はいくつかの Eclipse 要件が必要であると不満を漏らしていました。
私はさらに掘り下げて、jarファイルを解凍しました。サードパーティのjarファイルのマニフェストには次のものがあります。
それで、私はそれらの依存関係を満たすといううさぎの穴から始めました。Maven ページに基づいて、この features.xml ファイルをまとめました。
インストールしようとすると、次のようになります。
分点対フェリックスと関係があると思いますか? 私はデフォルトの Karaf セットアップを使用し、組み込みの Netbeans Maven プロジェクトを使用してバンドルを作成しているだけで、OSGI の世界ではまだ比較的新しいものです。ほとんどの場合、バンドルを起動して実行し、アプリの基本的なコレクションをまとめることができますが、この 1 つのバンドルはこのライブラリを使用できるかどうかに依存しており、それを機能させる方法を見つけるのに苦労しています. jar のリンクされたすべての依存関係を解決する方法があるかどうか、またはEclipse に依存しているものを何らかの方法で削除する方法があるかどうか疑問に思っていますか? 私が探している接続に必要のないのはプラグイン関連の部品だけなのだろうかと思っています。
アイデアをありがとう。
編集:サードパーティのjarに関する詳細情報を追加
jar はベンダー提供ですが、現在は廃止されたベンダーからのものです。ベンダーの詳細を教えてよいかどうかわからないので、ここでは特定の会社情報をマスクします。したがって、jar の名前は「com.bigcompany.product.productbeans_4.3.1.jar」になります。jar の完全なマニフェストは次のようになります。
Karaf での Equinox への切り替えは比較的簡単でしたが、jar を Karaf にドロップしてもリストには表示されませんでした。jar を解凍し、マニフェストを変更して Require-Bundle と Eclipse-Autostart の行を削除し、再パックしてインストールを試みました。 bigcompany.product.productbeans'.
そこから、サードパーティのパッケージをインポートしようとするバンドルを再デプロイしようとしましたが、上記の機能ファイルをインストールしようとすると、制約の欠落について不平を言っています-機能ファイルにバンドルの必要な順序はありますか?
最終的に私が望んでいるのは、それらを必要とするバンドルにjar(または含まれている.classファイル?)を埋め込むか含める信頼できる方法があり、それを機能させることだと思いますか?Embed-Dependency、Bundle-Classpath (構文や場所が正しいかどうかはわかりませんが)、Maven シェード プラグインを使用して試してみましたが、バンドルにサード パーティのパッケージがないと書かれている場所にたどり着きました。 、または、Eclipse の依存関係が見つからないというメッセージが表示されない場合。OSGI 以外のプロジェクトがある場合、maven の依存関係には、Eclipse 関連の依存関係がリストされていないか、含まれていません。必要に応じて、POM のスニペットなどを含めることができます。
service - OSGI JavaMail サービス
電子メール セッションを OSGI サービスとして宣言するのに問題があります。Apache Karaf 3.0.1 をコンテナとして、Apache Aries をブループリント JPA および JNDI 拡張に使用しています。
引数のクラス javax.mail.Session で一致するメソッドを見つけるためにタイプ enable のエラーが発生しました[{mail.smtp.host=mysmptpip, mail.smtp.port=25}]
...
これを修正する方法を知っている人はいますか?
さらに、JavaMail セッションを Apache ブループリント (サービスを作成する) を介して JNDI リソースとして宣言する方法を知りたいです。
maven - Karaf で頻繁にローカル スナップショット バンドルをデプロイするにはどうすればよいですか?
私は OSGI と Karaf の上にアプリケーションを構築することに決めました - 私はこれが本当に好きです。ただし、ローカルの開発マシンでの毎日の展開には少し苦労しています。つまり..変更を加えてから、ローカルの Karaf インスタンスでテストしたいと思います。そして、それは1時間に数回発生する可能性があります。
私が現在行っている方法は、JAR バンドルを作成し、Karaf の deploy ディレクトリにコピーする Maven ビルドです。決してエレガントではないと思います。
私は回避策を見つけようとしていました(グーグル)。Karaf の機能について読みましたが、アプリ全体を展開するための優れたメカニズムであるという事実にもかかわらず、私の問題は解決されないようです。私が正しく理解しているように、SNAPSHOT jar の新しいバージョンがローカルの Maven リポジトリに表示されたかどうかはチェックされませんよね?
osgi - バンドル内のカラフ欠落クラス
karaf の deploy フォルダーに httpclient-4.3.4.jar をデプロイしています。ターミナルで find-class HttpClients コマンドを使用すると、何も表示されません。キーワード find-class HttpClient を使用すると、httpclient バンドル用にロードされた次のクラスのみが取得されます。一部のクラスが欠落しているため、依存バンドルの 1 つで java.lang.NoClassDefFoundError: org/apache/http/impl/client/HttpClients を取得しています。
一部のクラスが利用できない理由を知る必要があります。独自のバンドルである場合は、インポートとエクスポートを指定して、公開する必要があるクラスを制御できます。しかし、外部ジャーの場合、なぜこれが起こっているのでしょうか?
httpclient (202) org/apache/http/HttpClientConnection.class org/apache/http/client/HttpClient.class org/apache/http/client/params/HttpClientParams.class org/apache/http/client/utils/HttpClientUtils.class org/apache/http/impl/AbstractHttpClientConnection.class org/apache/http/impl/DefaultHttpClientConnection.class org/apache/http/impl/SocketHttpClientConnection.class org/apache/http/impl/client/AbstractHttpClient.class org/apache/ http/impl/client/AutoRetryHttpClient.class org/apache/http/impl/client/ContentEncodingHttpClient.class org/apache/http/impl/client/DecompressingHttpClient.class org/apache/http/impl/client/DefaultHttpClient.class org/ Apache/http/impl/client/SystemDefaultHttpClient.class
out-of-memory - Karaf メモリ不足エラー
OSGi アクティベーター バンドルをデプロイし、リモート サービスを REST 対応として公開するために、Karaf 2.3.0 を使用しています。これはうまく機能しています。karaf ログ (ログの添付) でメモリ不足エラーが発生したのは 1 回だけで、その後、残りのサービスにアクセスできませんでした。サーバーがクラッシュしてから 1 時間後にヒープとスレッドのダンプを取得したところ (私の karaf プロセスは OOMemory エラーの後もまだ実行されています)、ダンプに大きなものは何も見つかりませんでした。jvisualvm (karaf プロセス Xmx-1024 MB) を使用してプロセスを確認したところ、メモリと CPU の消費量は最小限でした。しかし、ボットが自分のサービスにアクセスできません。サービスにアクセスしようとすると、タイムアウトになるまでエラーなしで数分間試行され続けます。サーバーログにもアクセスの兆候は見られません.. out of mem エラーが発生すると、プロセスが停止するはずがありませんか? 問題の原因を特定するにはどうすればよいですか? 以下にログを添付します
blueprint - Karaf 3.0.x config:update コマンドが /etc に .cfg ファイルを作成しない
バンドルで karaf 3.0.1 を使用しています ( https://github.com/johanlelan/camel-cxfrs-blueprint-example )。実行時にプロパティを管理したいのですが、config:update が /etc にファイルを作成しないのはなぜですか?
karaf では、エンドポイントの URL を変更しようとしています:
config:update の後にバンドルが更新されることは正確ですが、/etc にファイルが存在しません... karaf 2.3.5 で動作すると思います。