免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 757 | 回复: 0
打印 上一主题 下一主题

错误日志(1) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-01 14:14 |只看该作者 |倒序浏览
关于偷懒的错误
            System.out.println("--gen xml file .....");
            java.io.File file=new java.io.File(filepath);
            TransformerFactory tf=TransformerFactory.newInstance();
            Transformer transformer=tf.newTransformer();
            DOMSource source=new DOMSource(output);
            java.io.FileOutputStream fos=new java.io.FileOutputStream(file);
            StreamResult result=new StreamResult(fos);
            Properties props = new Properties();
            props.setProperty("encoding", "GB2312");
            props.setProperty("method", "xml");
            props.setProperty("omit-xml-declaration", "yes");
            transformer.setOutputProperties(props);
            transformer.transform(source,result);
            fos.close();
            System.out.println("--end gen xml file.");
            System.out.println("--gen xml file .....");
            java.io.File file=new java.io.File(filepath);
            TransformerFactory tf=TransformerFactory.newInstance();
            Transformer transformer=tf.newTransformer();
            DOMSource source=new DOMSource(output);
            StreamResult result=new StreamResult(file);
            Properties props = new Properties();
            props.setProperty("encoding", "GB2312");
            props.setProperty("method", "xml");
            props.setProperty("omit-xml-declaration", "yes");
            transformer.setOutputProperties(props);
            transformer.transform(source,result);
            System.out.println("--end gen xml file.");
      就因为我把上面三行代码做的事情写成了一行StreamResult result=new StreamResult(file);
于是我始终是不能对file进行renameTo操作或者delete操作,如果开始我能发现这一点,还是值得
庆幸的,但事实上我花了很长时间来找出问题,我甚至怀疑是Weblogic的限制所致,因为下面的程序
在Tomcat里运行是没有问题的,但现在想来有可能是使用的TransformerFactoryImpl不同造成的,
Weblogic使用的是org.apache.xalan.xsltc.trax.TransformerFactoryImpl ,而Tomcat用的是jdk
默认的。后来,我尝试了很多办法来解决这个问题,最终问题指向了写入文件的输出流,我并没有显
示控制文件的输出流,天知道StreamResult(file)作了什么,用java.io.FileOutputStream fos控制对
文件输入,并最终关闭文件输出流,这样做了之后,再也没有什么后遗症了,ok!这种错误以后应当
引以为戒。不过为什么在Tomcat中的运行完全没有问题,这其中是何道理呢??


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/9085/showart_54641.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP