Problema nell'esecuzione del progetto Spring Web in Eclipse sul server Tomcat
-
19-09-2019 - |
Domanda
Ho un progetto web primavera che utilizza Maven per la compilazione / build. Non v'è alcun problema nella costruzione del progetto. Sto cercando di eseguire il progetto in Eclipse (3.3.2) sul server Tomcat (V6).
Come parte del progetto di primavera, ho un file di primavera-servlet.xml nella directory WEB-INF. Questo file include un altro file XML risorsa che ha la configurazione origine dati.
<import resource="classpath:${datasourceInclude}.xml"/>
Ora, quando il progetto viene compilato utilizzando Maven, si risolve la variabile $ {} datasourceInclude e impostare con i valori appropriati conseguente primavera-servlet.xml con i valori corretti.
<import resource="classpath:datasourceLocal.xml"/>
Ma quando ho provato a fare funzionare il progetto in Eclipse (Tomcat), sto ottenendo seguente errore:
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:${datasourceInclude}.xml]
Offending resource: ServletContext resource [/WEB-INF/spring-servlet.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [${datasourceInclude}.xml]; nested exception is java.io.FileNotFoundException: class path resource [${datasourceInclude}.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
...
...
In sostanza quando inizia Tomcat, si cerca di scegliere la molla-servlet.xml da / cartella / webapp / WEB-INF src / principale che ha variabile $ {} datasourceInclude.
Qualcuno può dirmi come risolvere questo problema in modo che non devo cambiare la primavera-servlet.xml e aggiungere valore codice rigido al posto della variabile $ {} datasourceInclude.
Soluzione
Provare ad aggiungere war:inplace
alla lista degli obiettivi eseguiti per il filtraggio delle risorse nella pagina di configurazione del progetto Maven.
tasto destro del mouse sul progetto, poi vai a Proprietà> Maven> Lifecycle mappatura e aggiungere war:inplace
alle Obiettivi per invocare sui cambiamenti delle risorse come illustrato di seguito:
Altri suggerimenti
Chi è responsabile per risolvere il nome della proprietà / variabili nella vostra primavera XML? Questo viene fatto al momento della compilazione via Maven o è dovrebbe succedere in fase di esecuzione? Se in fase di esecuzione, stai usando PropertyPlaceholderConfigurer
di primavera?