2017-02-03 5 views
0

Je reçois le org.apache.velocity.exception.ResourceNotFoundException: Impossible de trouver l'erreur de ressource. Quelqu'un peut-il m'aider à comprendre le problème.J'ai joint mon code ci-dessous.Toute aide serait appréciée.Merci.Erreur lors du chargement du modèle Velocity dans Spring MVC (org.apache.velocity.exception.ResourceNotFoundException: Impossible de trouver la ressource)

I placed the .vm in the class path src folder.

Controller look like 

@RequestMapping("/velocity") public String velocity(final HttpServletRequest request, final HttpServletResponse response) { final VelocityEngine ve = new VelocityEngine(); ve.setProperty("resource.loader", "class"); ve.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); ve.init(); /* next, get the Template */ final Template t = ve.getTemplate("index.vm"); /* create a context and add data */ final VelocityContext context = new VelocityContext(); context.put("members", "sharat"); /* now render the template into a StringWriter */ final StringWriter writer = new StringWriter(); t.merge(context, writer); final String Html = writer.toString(); return Html; }

ressort servlet.xml

<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"> 
    <property name="resourceLoaderPath" value="/" /> 
</bean> 

<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> 
    <property name="cache" value="true"/> 
    <property name="prefix" value=""/> 
    <property name="suffix" value=".vm"/> 
</bean> 

erreur:

org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'index.vm' 
org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:474) 
org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:352) 
org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1533) 
org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1514) 
org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:373) 

velocity.properties

resource.loader = class file.resource.loader.description = Velocity File Resource Loader file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader file.resource.loader.path = vm file.resource.loader.cache = false file.resource.loader.modificationCheckInterval = 0

Répondre

0

Vous devez remplacer

resource.loader = class 

avec

resource.loader = file 

De plus, si vous êtes dans une webapp, vous devriez vérifier la WebappResourceLoader du Velocity Tools sous-projet, qui sera vous aider à spécifier un chemin relatif à la racine de la webapp. Vous pouvez facilement trouver en ligne how to configure Spring with Velocity Tools.

Sinon, vous devrez spécifier un chemin absolu pour la propriété file.resource.loader.path, ou assurez-vous que le chemin d'exécution actuel de votre conteneur webapp contient un répertoire vm dans lequel se trouvent vos modèles.

+0

Je suis en mesure de résoudre le problème.vraiment apprécier votre aide. – sharat