아래 클래스에서 작성한 XML 파일을 읽는 데 문제가 있습니다. 올바른 파일 디렉토리가 사용되도록 설정해야하는 속성이 여기에 있다고 믿게되었습니다. "logger.dtd"가 포함 된 줄을 제거하면예외가있는 XMLFile을 읽을 수 없습니다. java.io.FileNotFoundException : C : Temp logger.dtd (시스템에서 지정된 파일을 찾을 수 없음)
<?xml version="1.0" encoding="WINDOWS-1252"?>
<!DOCTYPE log SYSTEM "logger.dtd">
상단에있는 XML 파일을 읽을 수 있습니다. 누군가 일어나는 일을 설명 할 수 있습니까? SAXParser API를 사용하여 설정 한 동일한 URI에서 읽습니다. 내가 "logger.dtd"를 포함하는 행을 제거하면 상단에 읽을 수 있습니다 ... http://www.mkyong.com/java/how-to-read-xml-file-in-java-sax-parser/
package logging;
import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
import java.util.logging.XMLFormatter;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class Log {
static private FileHandler fileTxt;
static private SimpleFormatter formatterTxt;
static private FileHandler fileXML;
static private XMLFormatter formatterXML;
static public void setup(Logger theLogger) throws IOException{
Logger logger = theLogger;
logger.setLevel(Level.ALL);
fileTxt = new FileHandler("C:\\Temp\\logging.txt");
fileXML = new FileHandler("C:\\Temp\\XMLLogging.xml");
formatterTxt = new SimpleFormatter();
fileTxt.setFormatter(formatterTxt);
logger.addHandler(fileTxt);
formatterXML = new XMLFormatter();
fileXML.setFormatter(formatterXML);
logger.addHandler(fileXML);
for(Handler h: logger.getHandlers()){
System.out.println(h.getFormatter());
}
}
}
logger.dtd 파일은 XMLLogging.xml과 같은 디렉토리에 있어야합니다. dtd [here] (http://en.wikipedia.org/wiki/Document_Type_Definition)에 대한 자세한 내용을 볼 수 있습니다. –
그래서 내가 이클립스에서 자신을 생성 뭔가가 무엇입니까? Java에서 로깅 API와 함께 진행되는 자동화 된 프로세스가 있습니까? –
가장 좋은 방법 인 XMLLogging.xml과 동일한 소스에서 DTD를 얻을 수 있다면. 그렇게 할 수 없다면 온라인에 많은 DTD 생성기가 있으며 [Eclipse XML Editor] (http://editorxml.sourceforge.net/)로도 생성 할 수 있습니다. –