3

我有用于发送邮件的 OSGi 包,因此它使用来自mail-1.4.jar的com.sun.smtp包。但是 OSGi 服务无权访问这个 jar。

你能帮我吗,如何配置 Maven POM 文件,以便将mail-1.4.jar包含在我的包 jar 中,以便 OSGi 服务可以使用它?

编辑

错误是:
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

我建议不要在您的捆绑包中包含邮件罐。更好的方法是在 osgi 运行时简单地安装 mail.jar。

你必须确保你有两件事来完成这项工作:

  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 回答