Duvida no uso Digester ..iniciante

6 respostas
P

peguei um exemplo para usar Digester
mas nunca usei …Estou querendo ler um arquivo xml conforme abaixo

Mas não entra no Iterator pra leitura do mesmo …

O que está acontecendo ou que falta a fazer ???

se alguém puder me ajudar …

abs

public static void main(String[] args) throws Exception {
	

		Digester digester = new Digester(); 
		
		digester.setValidating( false ); 
		
		digester.addObjectCreate("persistence", ArrayList.class ); 

		digester.addObjectCreate( "persistence/persistence-unit", PersistenceLocal.class ); 
		digester.addBeanPropertySetter( "persistence/persistence-unit/description", "description" ); 
		digester.addBeanPropertySetter( "persistence/persistence-unit/provider", "provider" ); 

		
        File input = new File( "C:\workspace\TesteJPA\build\classes\META-INF\persistence.xml" ); 
		
		ArrayList c1 = (ArrayList)digester.parse(input); 
		
		Iterator it = c1.iterator();
		System.out.println("passo 1");
		while (it.hasNext()){
			
			PersistenceLocal persistenceLocal = (PersistenceLocal) it.next(); 
			System.out.print("Descricao   ="+persistenceLocal.getDescription()); 
			System.out.print("Provider ="+persistenceLocal.getProvider()); 
			System.out.println("	"); 
	     
	    }
		System.out.println("passo 4");
	}

	
		
	
		
	}  

//
--classe criada
public class PersistenceLocal {

	
	private String persistence;
	private String persistence_unit;
	private String description;
	private String provider;
	private String className;
	private String properties;
	
	
	public String getPersistence() {
		return persistence;
	}
	
	

//

--arquivo persistence.xml
!-- ?xml version="1.0" encoding="UTF-8"?-->
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
	<persistence-unit name="JPA9">
                <description>
                        Exemplo simples de persistência usando JPA. 
                </description>
                <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>br.com.exemplojpa.modelo.Usuario</class>
    <class>br.com.exemplojpa.modelo.Usuario1</class>   
    <class>br.com.exemplojpa.modelo.NotaFiscal</class>
    <class>br.com.exemplojpa.modelo.NotaFiscalItem</class>      
    <class>br.com.exemplojpa.modelo.Universidade</class>
    <class>br.com.exemplojpa.modelo.Centro</class>   
    <class>br.com.exemplojpa.modelo.Turma</class>
    <class>br.com.exemplojpa.modelo.Aluno</class>   
    <class>br.com.exemplojpa.modelo.Cliente</class>
    <class>br.com.exemplojpa.modelo.Estados</class>
    <class>br.com.exemplojpa.modelo.Cidades</class>                    
                <properties>
                        <property name="hibernate.archive.autodetetion" value="class"/>
                        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
                        <property name="hibernate.connection.driver_class"  value="com.mysql.jdbc.Driver" />
                        <property name="hibernate.connection.username" value="root" />
                        <property name="hibernate.connection.password" value="root" />
                        <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/exemplojpa" />
                        <property name="hibernate.show_sql" value="true" />  
                        <property name="hibernate.hbm2ddl.auto" value="update" />  
                           
                        <property name="hibernate.format_sql" value="true" />   
                                       
                </properties>
        </persistence-unit>

6 Respostas

M

Na linha 15, você não conseguiu carregar o arquivo pelo getResource() da classe? Você viu a última resposta no outro post?

P

desculpas a minha ignorância mas o que estou fazendo
por que não acha ???

URL myurl = Manager.class.getResource("/META-INF/persistence.xml");    
		
		System.out.println("File = "+myurl.getFile());
		File input = new File( myurl.getFile());
		ArrayList c1 = (ArrayList)digester.parse(input); 
		
		Iterator it = c1.iterator();
		System.out.println("passo 1");
		while (it.hasNext()){
			
			PersistenceLocal persistenceLocal = (PersistenceLocal) it.next(); 
			System.out.print("Descricao   ="+persistenceLocal.getDescription()); 
			System.out.print("Provider ="+persistenceLocal.getProvider()); 
			System.out.println("	"); 
	     
	    }
		System.out.println("passo 4");
M

Está dando alguma exception? Onde o programa para de funcionar?

P

não entra no Iterator ???

M

O método parse de Disgestor retorna um Object, não necessáriamente um ArrayList. Você já leu isso: http://commons.apache.org/digester/commons-digester-1.8/docs/api/org/apache/commons/digester/package-summary.html#package_description
Na parte “Usage Examples” tem um exemplo simples que talvez ajude.

P

valeu…obrigado

Criado 30 de janeiro de 2009
Ultima resposta 2 de fev. de 2009
Respostas 6
Participantes 2