geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Neal Sanche <n...@nsdev.org>
Subject Re: JavaMail
Date Tue, 23 Aug 2005 04:24:13 GMT
Neal Sanche wrote:

> Jeremy Boynes wrote:
>
>> Neal Sanche wrote:
>>
>>>
>>> Well, I've looked through the source and found the 
>>> org.apache.geronimo.mail module. It seems to contain a few GBeans 
>>> and some tests. The tests are mostly empty. How would I create an 
>>> SMTP transport session from my code?
>>>
>>
>> The easiest way is to define a resource reference in the standard 
>> deployment descriptor:
>>
>>   <resource-ref>
>>     <res-ref-name>mail/MailSession</res-ref-name>
>>     <res-type>javax.mail.Session</res-type>
>>     <res-auth>Container</res-auth>
>>     <res-sharing-scope>Shareable</res-sharing-scope>
>>   </resource-ref>
>>
>> You can then look up the resource with code like:
>>
>>     javax.mail.Session sess = (Session)
>>        new InitialContext().lookup("java:comp/env/mail/MailSession");
>>
>> We don't provide a default session but you can define one using a 
>> GBean in your deployment plan:
>>
>>     <gbean name="mail/MailSession"
>>       class="org.apache.geronimo.mail.SMTPTransportGBean">
>>         <attribute name="host">mail.example.com</attribute>
>>     </gbean>
>>
>> Other attributes can be set as appropriate; I think we support all 
>> the "standard" mail.smtp ones and non-standard ones can be set 
>> through the "properties" attribute.
>
>
> Okay, so, since I'm a bit of an XDoclet nut, still, I've done the 
> following to add the resource ref to one of my SLSB beans:
>
> @ejb.resource-ref
>   description="JavaMail Resource"
>   res-ref-name="mail/MailSession"
>   res-type="javax.mail.Session"
>   res-auth="Container"
>   res-sharing-scope="Shareable"
>
>
> Which ends up adding the following lines to my ejb-jar.xml file:
>
>         <resource-ref >
>            <description><![CDATA[JavaMail Resource]]></description>
>            <res-ref-name>mail/MailSession</res-ref-name>
>            <res-type>javax.mail.Session</res-type>
>            <res-auth>Container</res-auth>
>            <res-sharing-scope>Shareable</res-sharing-scope>
>         </resource-ref>
>
> Which is all good. Now, which deployment plan do I add the resource 
> ref to? I loked for gbean in the schemas and found that it can live in 
> the geronimo-application.xml under my module definitions. Is that the 
> correct place to put it in order to use it from within a SLSB?
>
> Thanks Jeremy,
>
> -Neal

Further to this, I am getting the following errors while deploying:

org.apache.geronimo.common.DeploymentException: Unable to resolve 
resource refer
ence 'mail/MailSession' (no matching resources found)
        at 
org.apache.geronimo.naming.deployment.ENCConfigBuilder.addResourceRef
s(ENCConfigBuilder.java:206)
        at 
org.apache.geronimo.naming.deployment.ENCConfigBuilder.buildComponent
Context(ENCConfigBuilder.java:705)
        at 
org.openejb.deployment.SessionBuilder.processEnvironmentRefs(SessionB
uilder.java:167)
        at 
org.openejb.deployment.SessionBuilder.addEJBContainerGBean(SessionBui
lder.java:296)
        at 
org.openejb.deployment.SessionBuilder.buildBeans(SessionBuilder.java:
182)

I'll keep looking... probably I need to add the gbean in the 
openejb-jar.xml deployment plan instead?

-Neal

Mime
View raw message