2015-05-11 10 views
9

Usiamo Spring Boot nella nostra applicazione insieme a AngularJS e HTML. Utilizziamo Velocity solo per i modelli di email ma non per il risolutore di viste.Disabilita il risolutore di vista Velocity in Spring Boot

@Bean(name = "velocityEngine") 
public VelocityEngineFactoryBean velocityEngineFactoryBean() { 
    VelocityEngineFactoryBean vefb = new VelocityEngineFactoryBean(); 
    Properties p = new Properties(); 
    p.put("resource.loader", "class"); 
    p.put("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); 
    vefb.setVelocityProperties(p); 
    return vefb; 
} 

Anche se non usiamo Velocity vista resolver, otteniamo il seguente errore a causa della configurazione automatica:

ERRORE org.apache.velocity - ResourceManager: incapace di trovare risorse 'loadlist 'in qualsiasi caricatore di risorse. ERRORE org.apache.velocity - ResourceManager: impossibile trovare l''indice' della risorsa in qualsiasi risorsa caricatore .

ho cercato di disattivare la configurazione automatica di velocità:

@Configuration 
@ComponentScan 
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class,VelocityAutoConfiguration.class }) 
@SuppressWarnings("PMD") 
@EnableAsync 
public class Application { 

ha anche aggiunto il seguente nel file application.properties:

spring.velocity.check-template-location=false 

Ma io sono ancora ottenere l'errore precedente. Esiste comunque la possibilità di disabilitare il risolutore di velocità Velocity da solo?

+7

Escludi dovrebbe essere sufficiente per disabilitare la configurazione automatica di Velocity (funziona per me). Due possibilità: hai un'altra annotazione '@ EnableAutoConfiguration' nella tua applicazione che non ha l'exclude configurata; la configurazione automatica è disabilitata e l'errore che stai vedendo è dovuto a qualcos'altro. Forse potresti pubblicare il rapporto di autoconfigurazione e l'intera traccia di stack che accompagna l'errore? –

+1

Grazie per la risposta. Ho avuto anche @EnableAutoConfiguration su qualche altro file. Funziona bene dopo aver escluso anche l'altro file. – user1578872

+0

Sto avendo un problema simile. Devo impostare spring.velocity.enabled = false per disabilitare il resolver di velocità Velocity mvc. Ma sto usando Velocity per i modelli di email e l'impostazione spring.velocity.enabled = false ha la conseguenza che VelocityEngineUtils.mergeTemplateIntoString (velocityEngine, "/mailing.txt", StandardCharsets.UTF_8.name(), modello); non trova più il file "mailing.txt" quando il progetto è in esecuzione come file WAR. Durante l'esecuzione in Eclipse funziona ancora. – yglodt

risposta