我有用于发送邮件的OSGi包,所以它使用com.sun.smtp包从mail-1.4.jar。但OSGi服务无法访问此jar。Maven - 包含引用库中的罐子
你能帮我吗,如何配置Maven POM文件如此mail-1.4.jar将被包含在我的bundle jar中,所以OSGi服务可以使用它吗?
EDIT
错误是:
javax.mail.NoSuchProviderException:无法找到用于协议提供者:SMTP
我有用于发送邮件的OSGi包,所以它使用com.sun.smtp包从mail-1.4.jar。但OSGi服务无法访问此jar。Maven - 包含引用库中的罐子
你能帮我吗,如何配置Maven POM文件如此mail-1.4.jar将被包含在我的bundle jar中,所以OSGi服务可以使用它吗?
EDIT
错误是:
javax.mail.NoSuchProviderException:无法找到用于协议提供者:SMTP
我会建议不要在你的包中包含邮件jar。更好的方法是简单地将mail.jar安装在osgi运行时。
你必须确保你拥有两个东西,使这项工作:
Yeasterday,我面对相同/类似的情况。尝试以下操作:
下面的行添加到您的依赖列表:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.1</version>
</dependency>
希望它确实有助于
事实上,它没有 - 我仍然有* javax.mail.NoSuchProviderException:在运行OSGi服务时无法找到提供程序协议:smtp *异常。事实上,我在使用Eclipse下的捆绑软件作为Java应用程序时,在* Referenced Libraries *中使用* mail-1.4.jar *时没有问题。 –
如果您已将您的软件包部署到您的网络服务器中,您确定可以访问目标邮件服务器吗?也许你还必须配置你的应用服务器。 – reporter
是的,我已经尝试从同一台机器上的Eclipse应用程序(工作)和OSGi服务(不工作)。 –
试图通过将此代码添加到您的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>
这可能会帮助你!
将依赖关系添加到maven pom中将不起作用,您还需要在运行时提供该依赖关系。您是否部署了提供必要软件包的软件包? – benjamin