Quando si utilizza Primavera Batch Admin, si cerca di fornire alcuni valori di default per dataSource, transactionManager eccUtilizzando datasource JNDI con molla lotto di amministrazione
Se si desidera ignorare queste impostazioni predefinite, è possibile creare le proprie definizioni XML di fagioli sotto META -INF/spring/batch/servlet/override/ cartella e durante il bootstrap garantisce che le proprietà di default saranno sovrascritte.
In primavera-batch-admin, un default dataSource è definito in origine dati-context.xml con questa definizione
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${batch.jdbc.driver}" />
<property name="url" value="${batch.jdbc.url}" />
<property name="username" value="${batch.jdbc.user}" />
<property name="password" value="${batch.jdbc.password}" />
<property name="testWhileIdle" value="${batch.jdbc.testWhileIdle}"/>
<property name="validationQuery" value="${batch.jdbc.validationQuery}"/>
</bean>
Ora, voglio ignorare questo dataSource con un DataSource JNDI così ho tolto il linee di proprietà come batch.jdbc.driver
, batch.jdbc.url
e hanno la seguente definizione jndi
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/dbconn" />
</bean>
Come si può facilmente intuire il sistema tenta prima di inizializzare il fagiolo dataSource definito nei dati source-context.xml e dal momento che non riesce a trovare alcun valore per p roperty valori batch.jdbc. * fallisce con un'eccezione.
Impossibile risolvere segnaposto 'batch.jdbc.driver' in valore stringa [$ {} batch.jdbc.driver]
Dato che io sarò con JNDI e non voglio a che fare con questi valori di proprietà, non posso procedere.
Qualche idea su come sovrascrivere dataSource in questa situazione?
Ciao- hai trovato una soluzione? (Non voglio usare i profili solo per questo problema.) – dsatish
@sdny No. Prova anche a usare una soluzione senza profili. –
Ho incontrato lo stesso problema. Anche impostando una connessione "predefinita" funzionante usando le proprietà richieste, non ero in grado di ottenere l'override dataSource da utilizzare. – Eric