2009-08-23 10 views
5

J'utilise le modèle de moteur de vitesse pour l'envoi en struts1 et la configuration d'hibernation.org.apache.velocity.exception.ResourceNotFoundException

J'ai eu l'erreur: org.apache.velocity.exception.ResourceNotFoundException pendant que j'essaye d'envoyer le courrier.

J'ai inclus velocity1.5.jar, mail.jar, activation.jar, smtp.jar.

I comprennent le chemin du modèle de vitesse ici

String velocityTemplate = "mailTemplate/sendMail.vm";

et le dossier MailTemplate est dans WEB-INF/classes dossier

je suis arrivé cette erreur lorsque le code exécute cette ligne

Template template = velocityEngine.getTemplate(velocityTemplate);

quelqu'un peut-il m'aider à ce sujet?

Ce sera plus appréciable si quelqu'un m'aide.

+0

Laquelle des méthodes init() de VelocityEngine avez-vous appelé? – BenM

+0

J'appelle celui-ci Velocity.init(); –

Répondre

5

Comme BenM dit que nous devons configurer le chargeur de ressources comme ClasspathResourceLoader

velocityEngine.setProperty("resource.loader", "class"); 
velocityEngine.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader")); 

velocityEngine.init(); 

et je viens d'ajouter la dernière version du pot suivant. Maintenant, ça fonctionne correctement.

-> commons-collections-3.2.1.jar

-> commons-lang-2.4.jar

encore une fois Merci BenM

1

Vérifiez que vous avez appelé init() sur votre VelocityEngine.

Vérifiez que vous avez configuré votre chargeur de ressources en tant que ClasspathResourceLoader. Voir le Velocity docs pour plus d'informations.

Pour l'héritage classe Velocity vous souhaitez effectuer les opérations suivantes:

Velocity.setProperty("resource.loader", "class"); 
Velocity.init(); 
+0

pourriez-vous s'il vous plaît dites-moi où doit être configuré ce chargeur de ressources –

+0

avons-nous besoin de configurer quelque chose dans web.xml? mais j'utilise la vitesse uniquement pour le courrier –

+0

J'ai mis à jour pour montrer comment configurer le chargeur de ressources de classe. – BenM

0

était aux prises avec la même question, enfin résolu cela.

  • Le fichier de modèle doit être dans le chemin de la classe.
  • Le fichier velocity.properties n'est pas en conflit avec les paramètres que vous avez définis avant init().
  • et qu'il n'y a pas plusieurs jarres de versions différentes jonchées autour de votre projet.