Eigenschaft nicht gefunden mit multiplen context:property-placeholder

Bin ich mit spring 3.1 mit Feder-profile zum laden der Bohnen. In meinem app-Kontext-Datei, ich lade die Eigenschaften wie :

<context:property-placeholder order="1"  location="classpath*:META-INF/spring/*_${spring.profiles.active}.properties" ignore-unresolvable="true"/>

Und dann benutze ich den Wert der Eigenschaft zum laden der Daten Quelle Bohne wie

<property name="driverClassName" value="${database.driverClassName}"/>

Funktioniert es einwandfrei.
Das problem beginnt, wenn ich hinzufügen ein paar weitere Eigenschaft Platzhalter so, dass die Eigenschaften von einigen Datenbank-Tabellen geladen werden können.

Dieser verwendet eine Eigenschaften-Referenz geladen

<bean id="configFactoryBean"
class="org.springmodules.commons.configuration.CommonsConfigurationFactoryBean">
   <constructor-arg ref="globalSystemConfiguration"/>
</bean>

Hinzufügen, um die details, dieser configFactoryBean verwendet die datasource zum laden der Eigenschaften aus der Datenbank.

Wenn ich dies mache, habe ich die folgende Ausnahme:

java.lang.ClassNotFoundException: ${database.driverClassName}

Meine Analyse ist, dass Sie versuchen zu laden, die datasource vor der Lösung die Eigenschaft aus der ersten Kontext-Eigenschaft Platzhalter. Ich kann mich auch irren. Oder vielleicht Feder-Profil variable wird nicht richtig aufgelöst.

Kann jemand bitte mir helfen, dieses Problem zu beheben.

Dank
Akki

  • Versuchen Sie, die um 0
  • Nein. es funktioniert nicht. Ich geändert, um zu 0 für die erste und immer noch die gleiche Fehlermeldung.
  • Oh warten, es ist nicht der Suche nach Ihrem Datenbank-Treiber. Haben Sie es zu den zusätzlichen classpath?
  • ja. und es funktioniert, wenn ich entfernen die anderen beiden <context:property-placeholder..> - tags. Ich denke, es ist nicht in der Lage zu lösen, die Eigenschaft ${Datenbank.driverClassName}
InformationsquelleAutor Abby | 2013-06-03
Schreibe einen Kommentar