Ola pessoal,
Estou com um problema que é o seguinte: Tenho uma aplicacao que grava em um arquivo properties as configuracoes do banco de dados para serem lidos pelo Spring. Acontece que eu uso o metodo Properties.store() para gravar os dados de um Properties em um arquivo. Acontece que ele coloca um backslash antes dos caracteres #, !, =, and : porem eu nao posso fazer isso porque na hora que o Spring for ler esse arquivo ele nao entende a URL de conexao. Exemplo:
Metodo que grava no arquivo:
public static void salvarProperties(String strCaminho, Properties prop, String descricao) throws FileNotFoundException, IOException {
URL caminho = PropertiesUtil.class.getResource(strCaminho);
//Writer out = new FileWriter(caminho.getFile());
OutputStream out1 = new FileOutputStream(URLDecoder.decode(caminho.getFile(),"utf-8"));
prop.store(out1, descricao);
out1.flush();
out1.close();
out1 = null;
}
Trecho do arquivo gravado:
jdbc.url=jdbc\:jtds\:sqlserver\://192.168.10.20\:1433/sagx_sagx\;instance\=
Dae quando eu vou pegar a conexao do pool o Spring nao entende. Exemplo:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<description>Configurer that replaces ${...} placeholders with values from properties files</description>
<property name="locations">
<list>
<value>classpath:jdbc_config.properties</value>
<value>classpath:hibernate_config.properties</value>
<value>classpath:login.properties</value>
<value>classpath:com/techsupply/sagx/resources/ApplicationResources.properties</value>
</list>
</property>
</bean>
<bean class="org.apache.commons.dbcp.BasicDataSource" id="ProjetoDataSource">
<property name="driverClassName">
<value>${jdbc.driver}</value>
</property>
<property name="url">
<value>${jdbc.url}</value>
</property>
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
Quando ele vai ler o trecho #{jdbc.url} do arquivo jdbc_config.propertie ele nao lê certo. Eu fiz um teste, abri o arquivo antes e mudei o trecho:
jdbc.url=jdbc\:jtds\:sqlserver\://192.168.10.20\:1433/sagx_sagx\;instance\=
para
jdbc.url=jdbc:jtds:sqlserver://192.168.10.20:1433/sagx_sagx;instance\=
Ae funcionou. Alguem sabe como retirar esse blackslash no momento da gravacao?
Obrigado;.