Podczas korzystania Wiosna Batch Administrator, stara się zapewnić pewne domyślne dla źródła danych, transactionManager itpKorzystanie JNDI źródła danych z wiosennej serii Administrator
Jeśli chcesz zmienić te ustawienia domyślne, można tworzyć własne definicje xml fasoli pod META -INF/spring/batch/servlet/override/ folder i podczas bootstrapu gwarantuje, że domyślne właściwości zostaną nadpisane.
W wiosenno-wsadowym-admin, domyślnym źródłem danych jest określony w źródła danych-context.xml z tą definicją
<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>
Teraz chcę, aby zastąpić tę z DataSource JNDI źródła danych więc usunąłem linie i usługi, takie jak batch.jdbc.driver
, batch.jdbc.url
i mają następujące JNDI definicji
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/dbconn" />
</bean>
Jak można łatwo odgadnąć, system najpierw próbuje zainicjować fasoli źródłem danych zdefiniowany w danych-source-context.xml a ponieważ nie można znaleźć żadnych wartości str wartości roperty batch.jdbc. * nie powiedzie się z wyjątkiem.
Nie można rozwiązać zastępczy 'batch.jdbc.driver' wartości string [$ {batch.jdbc.driver}]
Ponieważ będę używał JNDI i nie chcesz, aby radzić sobie z tymi wartości właściwości, nie mogę kontynuować.
Każdy pomysł na zastąpienie źródła danych w tej sytuacji?
Czy znalazłeś rozwiązanie? (Nie chcę używać profili tylko dla tego problemu.) – dsatish
@sdny No. Próbuję również użyć rozwiązania bez profili. –
Przebiegłem ten sam problem. Nawet ustawiając działające "domyślne" połączenie przy użyciu wymaganych właściwości, nie byłem w stanie uzyskać zastąpienia źródła danych, które ma zostać użyte. – Eric