一個用Spring建的java項目,在Eclipse或idea中運行正常,爲何打包後運行出現以下錯誤呢?java
2019/07/10/19:04:07 WARN [main] org.springframework.util.xml.SimpleSaxErrorHandler.warning(SimpleSaxErrorHandler.java:48) - Ignored XML validation warning org.xml.sax.SAXParseException; lineNumber: 9; columnNumber: 76; schema_reference.4: 沒法讀取方案文檔 'http://www.springframework.org/schema/beans/spring-beans.xsd', 緣由爲 1) 沒法找到文檔; 2) 沒法讀取 文檔; 3) 文檔的根元素不是 <xsd:schema>。 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.warning(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(Unknown Source) at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaWarning(Unknown Source) ....
由於咱們使用的Spring系列依賴包:spring-beans、spring-context、spring-aop、spring-jdbc、spring-tx等其中有部分配置文件是同名的:spring.facotries、spring.handlers、spring.schemas、spring.tooling。spring
在進行打包的過程當中,打包插件若是沒有進行詳細配置,這些同名的配置文件就會放在同一個目錄下,同名的文件可能會被替換,最後就會造成配置文件不全的狀況。apache
將全部的配置文件中的配置信息進行手動合併。而後將項目jar包目錄\META-INF下的這4個文件用合併好的文件替換掉。bash
下面我提供了這4個已經合併好的文件(注意:本文件是針對Spring4.2及如下版本的,高版本還需本身合併)的下載地址:
連接: https://pan.baidu.com/s/1MXvpuwzgY-qfVYwJeveb_Q 提取碼: keh4app
測試運行,正常。ide