<!--名字为:gobal-configure.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<sys-configure>
<jdbc-info>
<driver-class-name>com.mysql.jdbc.Driver</driver-class-name>
<url>jdbc:mysql://127.0.0.1:3306/person</url>
<user-name>root</user-name>
<password>xxx</password>
</jdbc-info>
<beans>
<bean id="person" class="servlet.DOMsg"></bean>
</beans>
</sys-configure>
package com;import java.io.IOException;import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;/**
 * 读取配置文件
 * 
 * @author Administrator
 * 
 */
public class GlobalConfigure { public String CONFIGURE_FILE_NAME = "gobal-configure.xml";
private Element rootEmt; private GlobalConfigure() {

System.out.println("@1");
try {
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(Thread.currentThread()
.getContextClassLoader().getResourceAsStream(
CONFIGURE_FILE_NAME));
System.out.println("@2");
this.rootEmt = doc.getRootElement();
System.out.println("@3");
initJDBC();
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} private void initJDBC() {
try {
System.out.println("@4");
Element driverClassName = (Element) XPath.selectSingleNode(rootEmt,
"//sys-configure/jdbc-info/driver-class-name");
System.out.println("@5");
System.out.println(driverClassName.getText());
} catch (JDOMException e) {
e.printStackTrace();
}
} public static void main(String[] args) {
GlobalConfigure global = new GlobalConfigure();
}}
出现一下的exception:
java.net.MalformedURLException
at java.net.URL.<init>(URL.java:601)
at java.net.URL.<init>(URL.java:464)
at java.net.URL.<init>(URL.java:413)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)@1 at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:518)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:865)
at com.GlobalConfigure.<init>(GlobalConfigure.java:27)
at com.GlobalConfigure.main(GlobalConfigure.java:54)

解决方案 »

  1.   

    解决办法:在应用路径里去掉对gnujaxp.jar包的引用。原因:jdom在解释xml文件时,如果应用路径里有gnujaxp.jar包的话,jdom就会调用它去解析xml文件,导致上述异常的出现。不知道是不是这个原因
    参考
    http://topic.csdn.net/u/20090330/11/e9458948-6700-4703-94df-69c4776a91f5.html?1532567408
      

  2.   

    MalformedURLException 
    好像你解析的或者什么路径不正确,有非法字符什么的吧,仔细逐字检查下
      

  3.   

    gnujaxp.jar我在应用路径没有啊 可是也是包 java.net.MalformedURLException  我在 Document doc = sb.build("WebRoot//WEB-INF//gobal-configure.xml"); 就完全没错  可能路径有问题
      

  4.   

       sb.build(Thread.currentThread().getContextClassLoader                              ().getResourceAsStream(CONFIGURE_FILE_NAME));
     
    视频里 gobal-configure.xml 这个文件应该放在 WEB-INF/classes 里 楼主可能被误导了
    你在视频的项目中应该 看不到 WEB-INF中有个gobal-configure.xmlgetResourceAsStream指到的资源文件是在 WEB-INF/classes 所以你把 gobal-configure.xml放到
     WEB-INF/classes 就OK了