我在将电子邮件会话声明为 OSGI 服务时遇到问题。我使用 Apache Karaf 3.0.1 作为容器,使用 Apache Aries 作为蓝图 JPA 和 JNDI 增强。
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<bean id="mailSession" class="javax.mail.Session" init-method="getInstance">
<property name="mail.smtp.host" value="mysmptpip"/>
<property name="mail.smtp.port" value="25"/>
</bean>
<service auto-export="interfaces" ref="mailSession">
<service-properties>
<entry key="osgi.jndi.service.name" value="java:mail/MailSession"/>
</service-properties>
</service>
</blueprint>
我有一个启用类型的错误,无法在类 javax.mail.Session 上找到匹配的方法以获取参数[{mail.smtp.host=mysmptpip, mail.smtp.port=25}]
...
有谁知道这应该如何解决?
另外,我想知道如何通过 Apache 蓝图(将创建服务)将 JavaMail 会话声明为 JNDI 资源?