通过编译项目并运行测试,此错误使我无法加载配置文件
java.io.IOException: Stream closed
at java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:159) ~[?:1.8.0_231]
at java.io.BufferedInputStream.read1(BufferedInputStream.java:284) ~[?:1.8.0_231]
at java.io.BufferedInputStream.read(BufferedInputStream.java:345) ~[?:1.8.0_231]
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) ~[?:1.8.0_231]
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) ~[?:1.8.0_231]
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) ~[?:1.8.0_231]
at java.io.InputStreamReader.read(InputStreamReader.java:184) ~[?:1.8.0_231]
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1895) ~[?:1.8.0_231]
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.arrangeCapacity(XMLEntityScanner.java:1761) ~[?:1.8.0_231]
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipString(XMLEntityScanner.java:1799) ~[?:1.8.0_231]
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:156) ~[?:1.8.0_231]
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:806) ~[?:1.8.0_231]
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771) ~[?:1.8.0_231]
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) ~[?:1.8.0_231]
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) ~[?:1.8.0_231]
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643) ~[?:1.8.0_231]
at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:217) ~[jdom-2.0.2.jar:?]
at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:303) ~[jdom-2.0.2.jar:?]
at org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1196) ~[jdom-2.0.2.jar:2.0.2]
文件读取代码如下:
public Map<String, OperationDTO> getOperations(String operationXml)
throws JDOMException, IOException, Exception {
log.trace("Log into method getOperations");
if(operationXml != null && !operationXml.isEmpty()){
OPERATION_XML = "Operations" + operationXml + ".xml";
}
log.trace("OPERATION_XML: "+OPERATION_XML);
Map<String, OperationDTO> operationProp = new ConcurrentHashMap<String, OperationDTO>();
log.trace( "Init get Operations .." );
SAXBuilder builder = new SAXBuilder();
InputStreamReader xmlFile =
new InputStreamReader( new BufferedInputStream( LoadConfig.class.getClassLoader().getResourceAsStream( OPERATION_XML ) ),
"UTF-8" );
log.info("La lectura del archivo OPERATIONS es correcta: "+xmlFile.ready());
Document document = builder.build( xmlFile );
Element rootNode = document.getRootElement();
List list = rootNode.getChildren( "operation" );
for ( int i = 0; i < list.size(); i++ ) {
OperationDTO operation = new OperationDTO();
Element transaction = ( Element ) list.get( i );
String idOperationType = transaction.getAttributeValue( "idOperationType" );
operationProp.put( idOperationType, operation );
}
return operationProp;
}
我需要确定此错误的原因,该错误之前未显示,并且我不知道为什么它未能声明 InputStreamReader xmlFile