digester为null啊,你看看是怎么回事吧

解决方案 »

  1.   

    多谢v38,刚打印了一下,不为空啊:“org.apache.commons.digester.Digester@18c458”,郁闷啊
      

  2.   

    那再打印一下digester.parse(in)
    问题只能在这里了
      

  3.   

    打印改为in = classLoader.getResourceAsStream("SalesConfig.xml");
        System.out.println(in);
    SalesConfig config = null;
    try {
    if (in != null)
    System.out.println(digester.parse(in));
    config = (SalesConfig)digester.parse(in);异常行又为“System.out.println(digester.parse(in));”这一行,这行抛出异常也就没打印结果了 谢谢v38,再帮小弟看看
      

  4.   

    另外一些程序为:
    static {
    Digester digester = new Digester();
    digester.setValidating(false); // 设置处理规则
    digester.addObjectCreate("config", "cn.hsales.sales.config.SalesConfig");
    digester.addSetProperties("config"); digester.addObjectCreate("config/dao","cn.hsales.sales.config.DaoConfig");
    digester.addSetProperties("config/dao");
    digester.addSetNext("config/dao", "addDao","cn.hsales.sales.config.DaoConfig"); ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    //InputStream in = null;
        in = classLoader.getResourceAsStream("SalesConfig.xml");
        System.out.println(in);
    SalesConfig config = null;
    try {
    if (in != null)
    System.out.println(digester.parse(in));
    config = (SalesConfig)digester.parse(in);
    in.close();


    } catch (IOException e) {
    e.printStackTrace();
    } catch (SAXException e) {
    e.printStackTrace();
    }

        salesConfig = config;
      

  5.   

    控制台异常:
    java.lang.NullPointerException
    at org.apache.commons.digester.Digester.createSAXException(Digester.java:2792)
    at org.apache.commons.digester.Digester.createSAXException(Digester.java:2818)
    at org.apache.commons.digester.Digester.endElement(Digester.java:1070)
    at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
    at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(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)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.commons.digester.Digester.parse(Digester.java:1591)
    at cn.hsales.sales.dao.DaoFactory.<clinit>(DaoFactory.java:58)
    at cn.hsales.sales.dao.TestDaoFactory.testDaoFactory(TestDaoFactory.java:40)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at junit.framework.TestCase.runTest(TestCase.java:154)
    at junit.framework.TestCase.runBare(TestCase.java:127)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:118)
    at junit.framework.TestSuite.runTest(TestSuite.java:208)
    at junit.framework.TestSuite.run(TestSuite.java:203)
    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
      

  6.   

    问题是找到了,应该是digester.parse(in)得到一个null,在
    config = (SalesConfig)digester.parse(in);
    这一句中你把NULL强制转型,所以有异常,
    Digester 我没有用过,你好好查一下API,看看问题出在哪里
      

  7.   

    又看了看,如果digester.parse(in)为null,也应该能打印出来啊,如今抛出异常,也就是说digester中抛出的异常,不知道对不,请各位指点!!!
      

  8.   

    config = (SalesConfig)digester.parse(in);
    这一句中你把NULL强制转型,所以有异常
      

  9.   

    但是用了System.out.println(digester.parse(in))后异常又变为这一行了,而不是config = (SalesConfig)digester.parse(in);了,呵呵 好郁闷,可能是SalesConfig.xml这个格式问题,检查了也好像没,或者tomcat5的问题,或者是JDK的问题,唉
      

  10.   

    晕啊,找不到错误只好不用digester和配置文件了,先用别的,以后找到问题后再 改过来!!