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]
