Я взял код Dineshkumar и был изменен для правильной проверки файла XML:
import org.apache.log4j.Logger;
public class Myclass{
private static final Logger LOGGER = Logger.getLogger(Myclass.class);
/**
* Validate XML file against Schemas XSD in pathEsquema directory
* @param pathEsquema directory that contains XSD Schemas to validate
* @param pathFileXML XML file to validate
* @throws BusinessException if it throws any Exception
*/
public static void validarXML(String pathEsquema, String pathFileXML)
throws BusinessException{
String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
String nameFileXSD = "file.xsd";
String MY_SCHEMA1 = pathEsquema+nameFileXSD);
ParserErrorHandler parserErrorHandler;
try{
SchemaFactory schemaFactory = SchemaFactory.newInstance(W3C_XML_SCHEMA);
Source [] source = {
new StreamSource(new File(MY_SCHEMA1))
};
Schema schemaGrammar = schemaFactory.newSchema(source);
Validator schemaValidator = schemaGrammar.newValidator();
schemaValidator.setErrorHandler(
parserErrorHandler= new ParserErrorHandler());
/** validate xml instance against the grammar. */
File file = new File(pathFileXML);
InputStream isS= new FileInputStream(file);
Reader reader = new InputStreamReader(isS,"UTF-8");
schemaValidator.validate(new StreamSource(reader));
if(parserErrorHandler.getErrorHandler().isEmpty()&&
parserErrorHandler.getFatalErrorHandler().isEmpty()){
if(!parserErrorHandler.getWarningHandler().isEmpty()){
LOGGER.info(
String.format("WARNING validate XML:[%s] Descripcion:[%s]",
pathFileXML,parserErrorHandler.getWarningHandler()));
}else{
LOGGER.info(
String.format("OK validate XML:[%s]",
pathFileXML));
}
}else{
throw new BusinessException(
String.format("Error validate XML:[%s], FatalError:[%s], Error:[%s]",
pathFileXML,
parserErrorHandler.getFatalErrorHandler(),
parserErrorHandler.getErrorHandler()));
}
}
catch(SAXParseException e){
throw new BusinessException(String.format("Error validate XML:[%s], SAXParseException:[%s]",
pathFileXML,e.getMessage()),e);
}
catch (SAXException e){
throw new BusinessException(String.format("Error validate XML:[%s], SAXException:[%s]",
pathFileXML,e.getMessage()),e);
}
catch (IOException e) {
throw new BusinessException(String.format("Error validate XML:[%s],
IOException:[%s]",pathFileXML,e.getMessage()),e);
}
}
}
Я считал использование изображений ImageIO.
Image i = ImageIO.read(InputStream in);
javadoc предложит больше информации также.
В некоторых системах, добавляющих "-Djava.awt.headless=true", поскольку, параметр Java может помочь.
Существует несколько статических методов в ImageIO, которые позволяют читать изображения из других источников. Самые интересные в Вашем случае:
BufferedImage read(ImageInputStream stream)
BufferedImage read(File input)
BufferedImage read(InputStream input)
Я проверил внутри в код. Это использует абстрактный класс ImageReader, и существует три конструктора: JPEGReader. PNGReader и GIFReader. Эти классы и BufferedImage не используют собственных методов, по-видимому, таким образом, он должен всегда работать.
Кажется, что AWTError, который Вы имеете, - то, потому что Вы выполняете Java в бездисплейной конфигурации, или что инструментарий окон имеет некоторую проблему. Не смотря на определенную ошибку твердо сказать все же. Это решение позволит Вам читать изображение (вероятно), но в зависимости от того, что Вы хотите сделать с ним, AWTError мог бы быть брошен позже, поскольку Вы пытаетесь отобразить его.