peguei um exemplo da internet para uso Digester pois estou querendo ler o
arquivo xml persistence.xml
qdo vai executar a linha Persiste c = (Persiste)digester.parse( input );
da o erro abaixo …
e não sei aonde estou errando …se alguem puder me ajudar agradeceria …
abs
Caminho File = /C:/workspace/TesteJPA/build/classes/META-INF/persistence.xml
java.lang.NullPointerException
at xml.PersisDriver.main(PersisDriver.java:48)
public class PersisDriver {
public static void main( String[] args ) {
try {
Digester digester = new Digester();
digester.setValidating( false );
digester.addObjectCreate( "persistence-unit", Persiste.class );
digester.addObjectCreate( "persistence-unit/description", Description.class );
digester.addBeanPropertySetter( "persistence-unit/description", "name" );
digester.addSetNext( "persistence-unit/description/description", "addDescription" );
digester.addObjectCreate( "persistence-unit/provider", Provider.class );
digester.addBeanPropertySetter( "persistence-unit/provider/provider", "name" );
digester.addSetNext( "persistence-unit/description", "addProvider" );
URL myurl = Manager.class.getResource("/META-INF/persistence.xml");
System.out.println("Caminho File = "+myurl.getFile());
File input = new File(myurl.getFile());
Persiste c = (Persiste)digester.parse( input );
System.out.println( c.toString() );
} catch( Exception exc ) {
exc.printStackTrace();
}
}
}
import java.util.Vector;
public class Persiste {
private String name ;
private Vector descriptions;
private Vector providers;
public Persiste() {
descriptions = new Vector();
providers = new Vector();
}
public void addDescription( Description ds ) {
descriptions.addElement( ds );
}
public void addProvider( Provider ps ) {
providers.addElement( ps );
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
String newline = System.getProperty( "line.separator" );
StringBuffer buf = new StringBuffer();
buf.append( "--- Descriptions ---" ).append( newline );
for( int i=0; i<descriptions.size(); i++ ){
buf.append( descriptions.elementAt(i) ).append( newline );
}
buf.append( "--- Providers ---" ).append( newline );
for( int i=0; i><providers.size(); i++ ){
buf.append( providers.elementAt(i) ).append( newline );
}
return buf.toString();
}
}
-------------
public class Description {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
----
public class Provider {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
–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>