3

メールを送信するための OSGi バンドルがあるため、 mail-1.4.jarのcom.sun.smtpパッケージを使用しています。しかし、OSGi サービスはこの jar にアクセスできません。

OSGi サービスが使用できるように、mail-1.4.jarがバンドル jar に含まれるように Maven POM ファイルを構成する方法を教えてください。

編集

エラー:
javax.mail.NoSuchProviderException: プロトコルのプロバイダーが見つかりません: smtp

4

3 に答える 3

2

昨日、私は同じ/似たような状況に直面しました。以下を試してください:

以下の行を依存リストに追加します。

<dependency>
 <groupId>javax.mail</groupId>
 <artifactId>mail</artifactId>
 <version>1.4.1</version>
</dependency>

うまくいけば、それは役に立ちます

于 2013-01-08T12:04:48.920 に答える
2

バンドルにメール jar を含めないことをお勧めします。より良い方法は、単に mail.jar を osgi ランタイムにインストールすることです。

これを機能させるには、次の 2 つのものが整っていることを確認する必要があります。

  1. 独自のバンドルのマニフェストに必要なパッケージを必ずインポートしてください。通常、maven バンドル プラグインをデフォルトで使用するだけでこれを実行できますが、結果のマニフェストを確認する必要があります。
  2. mail.jar を OSGi ランタイムにデプロイします。Apache karaf を使用している場合は、次のようにします: mvn install -s mvn:javax.mail/mail/1.4.4 そうでない場合は、以下の jar が役立ちます。OSGi デプロイメント用の正しいマニフェスト ファイルが含まれていますhttp://search.maven.org/#artifactdetails|javax.mail|mail|1.4.4|jar
于 2013-01-09T09:13:26.517 に答える
0

このコードを pom.xml に追加してみてください

<dependency>

   <groupId>javax.mail</groupId>
   <artifactId>mail</artifactId>
   <version>1.4</version>

</dependency>

または

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-email</artifactId>
    <version>1.2</version>
</dependency>

これはあなたを助けるかもしれません!

于 2013-01-08T12:09:44.873 に答える