Como alterar parâmetros XML passando valores obtidos de um arquivo .INI externo?

3 respostas
alanbravin

Bom dia,

estou com um problema que não consigo resolver.
Tenho um portal de vendas (na verdade da empresa onde trabalho) que é utilizado por alguns clientes. Ou seja, é um serviço que eles pagam.
Toda vez que é necessário atualizar, é mandado o arquivo .WAR para os clientes. No entanto, antes de mandar para cada um, é necessário alterar o endereço do banco, login e senha em 3 arquivos:

  • ConnectionFactory.java
  • persistence.xml
  • applicationContext.xml

Então surgiu a idéia de disponibilizar um arquivo server.ini com dados do banco. Assim, só seria necessário gerar um .WAR e mandar para todos os clientes. A aplicação leria esse arquivo e faria a conexão.

Para o ConnectionFactory.java eu consegui isso pegando o endereço do arquivo pelo System.getProperty(“user.dir”), lendo ele em um FileInputStream e jogando em um Properties.

Mas, e para esses dois XMLs? Não consegui atribuir o valor a tag. Alguém poderia me ajudar?
Dei uma pesquisada sobre isso e encontrei um artigo sobre XStream e WriteFile mas, pelo que entendi, é para gerar XML e não alterar. Pelo menos era assim o exemplo.

Abaixo segue parte do XML que gostaria de alterar.

persistence.xml
Queria alterar as linhas de 12 a 14

<persistence-unit name="bookingDatabase" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <!-- <property name="hibernate.hbm2ddl.auto" value="update"/> -->
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9iDialect"/>
            
            <!-- Use these vendor-specific properties to setup JDBC connection instead of using Spring configuration -->
           
            <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver"/>
            <property name="hibernate.connection.username" value="USUARIO"/>
            <property name="hibernate.connection.password" value="SENHA"/>
            <property name="hibernate.connection.url" value="jdbc:oracle:thin:@192.168.1.90:1521:AWORKSDB"/>
		<property name="hibernate.jdbc.batch_size" value="50" />
        
            </properties>
    </persistence-unit>

applicationContext.xml.
Gostaria de alterar as linhas de 3 a 5

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@192.168.1.90:1521:AWORKSDB"/>
        <property name="username" value="USUARIO"/>
        <property name="password" value="SENHA"/>
    </bean>

server.ini
Carrego as configurações deste arquivo:

banco=jdbc:oracle:thin:@192.168.1.90:1521:AWORKSDB
login=USUARIO
senha=SENHA

Obrigado

3 Respostas

alanbravin

Aos moderadores, peço que por favor excluam um dos meus tópicos.
Ao inserir a primeira vez deu um erro entao criei novamente. Não tinha visto que já havia sido postado.
Desculpem-me

moacirrox

seria melhor criar um arquivo .ini seguinte

ipbanco=xxx.xxx.xxx.xxx
banco=nome_da_db
usuario=usuario_da_db
senha=senha_da_db

ai carregar as variaveis dentro do script de conexão… atualmente estou precisando disso ai, mais… vo terque estudar para ver se faço xD

Rodrigo_Sasaki

o xstream eu nunca usei, mas você pode usar o SAXBuilder da JDOM

Criado 1 de junho de 2011
Ultima resposta 2 de dez. de 2011
Respostas 3
Participantes 3