I am having the same problem when I upgraded to Jboss 3.2.3.
Everything worked before in Jboss 3.2.1. I think it has something to do
with the Singleton model.

-----Original Message-----
From: Erez Efrati [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, March 24, 2004 5:17 PM
To: [EMAIL PROTECTED]
Subject: can't load template


Hi there, I trying to work with the Velocity and keep complaining the
following error message: 

" Unable to find resource 'resources.UserLoginInfo.vm' " 

My application is contains the Logic (and EJB module) and Web (web
module). the UserLoginInfo.vm is located under the resources directory.
I am working with JBoss 3.2.3 /Tomcat 4.1.29.

Here is my Emailer.java: 

Code:

 
/**
 * A utility class that provides API for sending 
 * templated emails per application use case. 
 * <p>The <code>Emailer</code> uses Velocity SDK to generate
 * the templated emails.
 * 
 * @author         Erez Efrati
 * @version        $Revision:$ $Date:$
 */
public class Emailer {
 
            /**
             * JNDI context for JavaMail sessions.
             */
            private static final String JNDI_JAVA_MAIL = "java:/Mail";
            
            /**
             * The content type of the HTML email messages.
             */
            private static final String HTML_CONTENT_TYPE =
"text/html;charset=UTF-8";
            
            /**
             * The user-login-info email template resource name.
             */
            private static final String VM_USER_LOGIN_INFO_REMINDER 
 
= "resources.UserLoginInfo.vm";
 
            // Velocity variable names keys
            private static final String VMVAR_USER = "user";
            private static final String VMVAR_SUBJECT = "subject";
 
            /**
             * the engine instance
             */
            VelocityEngine m_engine = new VelocityEngine ();
 
            // ------------------------------------------------------
Private Methods
 
 
            /**
             * Configures the engine to use classpath to find templates
             * 
             * @param engine                      the engine to
configure
             * @throws Exception     thrown if an errors occures
             */
            private void configure (VelocityEngine engine) throws
Exception 
            {
                        Properties props = new Properties ();
                        props.setProperty
(VelocityEngine.RESOURCE_LOADER, "classpath");
                        props.setProperty ("classpath." +
VelocityEngine.RESOURCE_LOADER + ".class",
 
ClasspathResourceLoader.class.getName());
                        m_engine.init (props);
            }
 
 
            /**
             * Creates a Velocity context
             */
            private VelocityContext createContext()
            {
                        VelocityContext ctx = new VelocityContext ();
                        return ctx;
            }
 
            /**
             * Retreives a new JavaMail Mime message
             * 
             * @return
             * @throws NamingException
             */
            private MimeMessage createMimeMessage() throws
NamingException 
            {
                        Context initCtx = new InitialContext ();
                        Session session = (Session)initCtx.lookup
(JNDI_JAVA_MAIL);
                        MimeMessage message = new MimeMessage (session);
                        return message;
            }
            
            // ------------------------------------------------------
Public Methods
            
            /**
             * Default constructor, configures the velocity engine.
             * 
             * @throws Exception, if an error occures
             */
            public Emailer () throws Exception
            {
                        configure (m_engine);
            }
 
 
            /**
             * Sends an email to the specified <code>user</code>
containing
             * his login information which includes his username and
password.
             *  
             * @param user
             * @throws Exception
             */
            public void sendUserLoginInfo (User user) throws Exception
            {
                        // retrieve the email template
                        Template template = m_engine.getTemplate
(VM_USER_LOGIN_INFO_REMINDER);
                        
                        // prepare the context and store data objects in
it
                        VelocityContext ctx = createContext ();
                        ctx.put (VMVAR_USER, user);
                        
                        // merge the template
                        StringWriter writer = new StringWriter ();
                        template.merge (ctx, writer);
                        writer.close ();
                                                              
                        // retrieve the message subject and text. The
subject 
                        // is formulated as part of the email velocity
template.
                        StringBuffer text = writer.getBuffer();
                        String subject = (String)ctx.get
(VMVAR_SUBJECT);
 
                        // create a new message to work with

                        MimeMessage message = createMimeMessage ();
 
                        // retrieve the user's email address
                        String to = user.getEmail ();
                        
                        String from = App.getSupportEmailAddress ();
                        message.setFrom (new InternetAddress (from));
                        message.addRecipient (Message.RecipientType.TO,
 
new InternetAddress (to));
                                      
                        // set the subject and content
                        message.setSubject (subject);
                        message.setContent (text, HTML_CONTENT_TYPE);
 
                        // Send message
                        Transport.send (message);
            
            }
 
            



Why doesn't it work? What am I missing? 

One more thing I maybe should point out as well - The emailer 
is called from my 'UserServiceBean' which is a stateless Session bean. 
I hope this is valid, is it? 

I would really appreciate any help here :) 

Erez

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to