Wenn Spring Batch-Admin, es einige Standardwerte für die Datenquelle zu liefern versucht, transaction usw.Mit jndi Datenquelle mit Feder Batch-Server-Betreiber
Wenn Sie diese Standardwerte außer Kraft setzen möchten, können Sie Ihre eigene XML-Bean-Definitionen unter META erstellen -INF/spring/batch/servlet/override/ Ordner und garantiert während des Bootstrappings, dass die Standardeigenschaften überschrieben werden.
Im Frühjahr-Batch-admin, eine Datenquelle Standard in Datenquelle-context.xml mit dieser Definition definiert ist
<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>
Jetzt möchte ich diese Datasource mit einer JNDI-Datenquelle außer Kraft zu setzen, so entfernte ich die die folgende jndi Definition Eigenschaft Linien wie batch.jdbc.driver
, batch.jdbc.url
und haben
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/dbconn" />
</bean>
wie Sie können sich leicht vorstellen, das System zuerst die Datenquelle Bohne in data-source-context.xml definiert zu initialisieren versucht und da es keine Werte finden p Property-Werte batch.jdbc. * Es schlägt mit einer Ausnahme fehl.
konnte nicht Platzhalter 'batch.jdbc.driver' in String-Wert [$ {batch.jdbc.driver}] lösen
Da ich JNDI verwenden werden und wollen nicht mit diesen beschäftigen Eigenschaftswerte, kann ich nicht fortfahren.
Haben Sie eine Idee, wie Sie DataSource in dieser Situation überschreiben können?
Hi - haben Sie eine Lösung gefunden? (Ich möchte Profile nicht nur für dieses Problem verwenden.) – dsatish
@sdny Nein. Auch versuchen, eine Lösung ohne Profile zu verwenden. –
Ich habe das gleiche Problem überfahren. Selbst wenn ich eine funktionierende "Standard" -Verbindung mit den erforderlichen Eigenschaften eingerichtet habe, konnte ich die DataSource override nicht verwenden. – Eric