Ler arquivo XML com DTD (java.util.logging + JAXB)

2 respostas
nei.junior

Pessoal, boa tarde !

Seguinte, estou fazendo alguns testes com relação a log (utilizando o java.util.logging) para pegar as informações de erro, por exemplo, e salvar em um arquivo.
Já consegui fazer com que quando apresente o erro, ele gere um arquivo java.log no formato xml.

Agora estou tentando pegar esse arquivo java.log (em xml), ler e armazenar em um objeto os dados para que possa gerar um relatório do mesmo caso tenha necessidade.
Porém nesse arquivo java.log que esta no formato xml, tem uma tag que esta da seguinte forma:

<!DOCTYPE log SYSTEM "logger.dtd">
Com isso, quando mando ler o arquivo java usando o JAXB, o mesmo esta dando erro nessa linha e gerando a seguinte mensagem:
Exception in thread "main" javax.xml.bind.UnmarshalException
 - with linked exception:
[java.io.FileNotFoundException: C:\Documents and Settings\Nei\NeiJava\logger.dtd (O sistema não pode encontrar o arquivo especificado)]
        at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:197)
        at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:168)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:142)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:151)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:169)
        at Dao.ImportarLogDao.importar(ImportarLogDao.java:36)
        at exemplologger.Main.main(Main.java:39)
Caused by: java.io.FileNotFoundException: C:\Documents and Settings\Nei\NeiJava\logger.dtd (O sistema não pode encontrar o arquivo especificado)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at java.io.FileInputStream.<init>(FileInputStream.java:66)
        at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
        at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:653)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1315)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1282)
        at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:283)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1192)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1089)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1002)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
        at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:195)
        ... 7 more
Java Result: 1
Alguem sabe como resolver esse problema usando o JAXB para ler o arquivo xml com a tag DTD ? Estou procurando no google e não consegui achar ainda !

Aguardo e obrigado por enquanto !

2 Respostas

renzonuccitelli

Pela Exceção o arquivo não está sendo encontrado. Tem certeza de que colocou o diretório certo?

nei.junior

renzonuccitelli:
Pela Exceção o arquivo não está sendo encontrado. Tem certeza de que colocou o diretório certo?

Fala renzonuccitelli !

Sim cara, ta no caminho correto.
Tanto é que se eu edito o arquivo gerado e retiro essa linha, eu consigo ler o arquivo normalmente. Porém quando ele gera o .log pelo logging ele coloca essa linha de DTD.

Se souber de mais alguam coisa, porque esta dificil achar isso. rsrs

Aguardo !
Vlw pela resposta !

Criado 18 de março de 2009
Ultima resposta 18 de mar. de 2009
Respostas 2
Participantes 2