0

電子メール セッションを 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 で一致するメソッドを見つけるためにタイプ enable のエラーが発生しました[{mail.smtp.host=mysmptpip, mail.smtp.port=25}]...

これを修正する方法を知っている人はいますか?

さらに、JavaMail セッションを Apache ブループリント (サービスを作成する) を介して JNDI リソースとして宣言する方法を知りたいです。

4

2 に答える 2

0

BundleContext#registerService()十分です。必要に応じてサービス登録にプロパティを追加できますが、必須ではありません。サービスが閉鎖されたら、忘れずにサービスの登録を解除してください。

于 2014-07-12T14:03:35.290 に答える