2009-08-23 9 views
5

Używam szablonu silnika prędkości do wysyłania wiadomości w konfiguracji struts1 i hibernacji.org.apache.velocity.exception.ResourceNotFoundException

Wystąpił błąd: org.apache.velocity.exception.ResourceNotFoundException podczas próby wysyłania poczty.

Zawarłem velocity1.5.jar, mail.jar, activation.jar, smtp.jar.

ja zawierać ścieżkę szablonu prędkość tutaj

String velocityTemplate = "mailTemplate/sendMail.vm";

i folder mailtemplate jest WEB-INF/classes folderze

mam ten błąd, gdy kod wykonuje tę linię

Template template = velocityEngine.getTemplate(velocityTemplate);

czy ktoś może mi w tym pomóc?

Będzie to bardziej znaczące, jeśli ktoś mi pomoże.

+0

Którą z metod init() na VelocityEngine zadzwoniłeś? – BenM

+0

nazywam ten jeden Velocity.init(); –

Odpowiedz

5

Jak BenM powiedział musimy skonfigurować Loader zasobów jako ClasspathResourceLoader

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

velocityEngine.init(); 

i po prostu dodaje najnowszą wersję następującego słoika. teraz działa poprawnie.

-> commons-kolekcje-3.2.1.jar

-> commons-lang-2.4.jar

ponownie Dzięki BenM

1

Upewnij się, że wywołałeś init() na swoim VelocityEngine.

Sprawdź, czy skonfigurowałeś moduł ładujący zasoby jako ClasspathResourceLoader. Zobacz Velocity docs, aby uzyskać więcej informacji.

Dla klasy spuścizna Velocity chcesz wykonać następujące czynności:

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

czy możesz mi powiedzieć, gdzie powinien być skonfigurowany program ładujący zasoby –

+0

czy musimy skonfigurować jakąkolwiek rzecz w web.xml? ale używam prędkości tylko dla poczty –

+0

Zaktualizowałem, aby pokazać, jak skonfigurować program ładujący klasy. – BenM

0

zmagała się z tym samym numerze, w końcu rozwiązany.

  • plik szablonu musi znajdować się w ścieżce klasy.
  • Plik velocity.properties nie powoduje konfliktu z ustawieniami dokonanymi przed init().
  • i że nie ma wielu słoików o różnych wersjach zaśmieconych wokół twojego projektu.