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.

È stato utile?

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:

alt text

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?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top