2014-07-12 3 views
0

전자 메일 세션을 OSGI 서비스로 선언하는 데 문제가 있습니다. Apache Karaf 3.0.1을 컨테이너로, Apache Aries를 청사진 JPA 및 JNDI 향상을 위해 사용하고 있습니다. OSGI JavaMail 서비스

<?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> 

나는 ... 유형의 오류가 인수 [{mail.smtp.host=mysmptpip, mail.smtp.port=25}]에 대한 클래스 javax.mail.Session에 일치하는 방법을 찾을 수 있도록해야

사람이 고정되어야하는지 어떤 생각을 가지고 있습니까?

추가로 아파치 청사진을 통해 JavaMail 세션을 JNDI 리소스로 선언 할 수있는 방법에 대해 알고 싶습니다.

+1

나는이 질문에 동의하지 않습니다. 의견을 바탕으로 한 것이 아닙니다. 저자는 그의 청사진 xml에 오류가 있습니다. 올바른 빈 정의는 다음과 같이 보일 것입니다 : <빈 클래스 = "javax.mail.Session"공장 방법 = "의 getInstance"> \t <인수 유형 = "java.util.Properties를"> \t \t \t \t \t <소품 키 = "mail.smtp.host"> mysmptpip \t \t \t <키 = "mail.smtp.port를"소품> 25 \t \t \t fuemf5

답변

1

구성된 메일 세션을 서비스로 제공 할 수 있다고 생각합니다. 따라서 구성이 중앙 집중화됩니다.

0

BundleContext#registerService()으로 충분하다. 원하는 경우 서비스 등록에 속성을 추가 할 수 있지만 필요하지는 않습니다. 서비스가 종료되면 등록을 취소하십시오.