XMLEncoder não cria o arquivo do jeito que quero

0 respostas
C

Eu estou com uma dúvida sobre o uso de XMLEncoder e como é uma dúvida meio básica coloquei aqui nessa área do fórum...se fiz errado por favor me desculpem e peço que procedam como acharem coerente.

Eu tenho a necessidade de persistir algumas classes e para isso vou usar um arquivo XML ou um banco MySQL, snedo assim usei padrões de projeto como DAO, FACTORY e outras tranqueiras. Eu tenho uma classe Zona (Zona Eleitoral) e criei um DAO que pretendo usar para acessar os objetos dessa classe. Porem na hora de ?encodar? propriamente falando alguma tranqueira ocorre.

PS: Eu usei alguns padrões de projeto e talvez o mau uso deles deve estar causando problema 

Metodo que pega os dados do frame e faz a inserção
private void btGravarActionPerformed(java.awt.event.ActionEvent evt) {                                         
        int numero = Integer.parseInt(tfNumero.getText());
        String telefone = tfTelefone.getText();
        int numeroAtm = Integer.parseInt(tfNumeroATM.getText());
        String ipRemoteWAN = tfIpRemoteWAN.getText();        

        DAOFactory _fabricanteDAO = DAOFactory.getDAOFactory(DAOFactory.XML);                                
                
        IZonaDAO _zonaDAO = _fabricanteDAO.getZonaDAO();
                
        Zona _zona = new Zona(numero, telefone, numeroAtm, ipRemoteWAN);
                
        int novoNumeroZona = _zonaDAO.insertZona(_zona);  }
Fabrica de DAO para o tipo XML.
package aprendizadodao.abstractDAO;

import aprendizadodao.concreteDAO.IZonaDAO;
import aprendizadodao.concreteDAO.XmlZonaDAO;
import java.beans.XMLEncoder;
import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class XmlDAOFactory extends DAOFactory{
    private static FileOutputStream outputStream;
    private static XMLEncoder encoder = null;
    private static String URL = "C:\";
    private static String FILE_NAME = "Zonas.xml";
    
    /** Creates a new instance of XmlDAOFactory */
    public XmlDAOFactory() {
    }

    public static XMLEncoder getXmlEncoder(){
        try {
            if (encoder == null) {
                outputStream = new FileOutputStream(URL+FILE_NAME);        
                encoder = new XMLEncoder(new BufferedOutputStream(outputStream));        
                return encoder;
            } else {
                return encoder;
            }            
        } catch (FileNotFoundException ex)  {
        //caso o arquivo a ser criado não seja encontrado
        } 
        return null;
    }
    
    public IZonaDAO getZonaDAO() {
        return new XmlZonaDAO();
    }   
    
    /* Ainda será implementado
    public IChamadoDAO getChamadoDAO(){
        return new XmlChamado();
    }
    */ }
DAO para a classe Zona que persiste em XML
package aprendizadodao.concreteDAO;

import aprendizadodao.Zona;
import aprendizadodao.abstractDAO.DAOFactory;
import aprendizadodao.abstractDAO.XmlDAOFactory;
import javax.sql.RowSet;

public class XmlZonaDAO implements IZonaDAO{        
    private XmlDAOFactory _fabricanteXML;
    
    /** Creates a new instance of XmlZonaDAO */
    public XmlZonaDAO() {
        _fabricanteXML = new XmlDAOFactory();
    }

    public int insertZona(Zona _zona) {        
        _fabricanteXML.getXmlEncoder().writeObject(_zona);
        _fabricanteXML.getXmlEncoder().close();                
        return _zona.getNumero();        
    }

    public boolean deleteZona(int _numero) {
        return true;
    }

    public Zona findZona(Zona _zona) {
        return _zona;
    }

    public boolean updateZona(Zona _zona) {
        return true;
    }

    public RowSet listZona() {
        return null;
    }   
}
Arquivo gerado é:
<?xml version="1.0" encoding="UTF-8" ?> 
  <java version="1.6.0_02" class="java.beans.XMLDecoder" />

E ai alguem para ajudar?

Criado 28 de janeiro de 2008
Respostas 0
Participantes 1