冷月宫主的专栏

燕过留声,点滴记录

XML解析之FWK005异常
一个项目中需要从HTTP中读取XML 同步数据到数据库中,在大量数据的压力测试下,发现有数据丢失
经过调试发现在控制台产生异常: FWK005
进一步定位发现在解析XML的时候,xml inputstream为空

之前的代码:
Java代码 复制代码 收藏代码
  1. import javax.xml.parsers.DocumentBuilder; 
  2. import javax.xml.parsers.DocumentBuilderFactory; 
  3.  
  4. private static DocumentBuilderFactory factory = null
  5. private static DocumentBuilder builder = factory.newDocumentBuilder(); 
  6.  
  7. if ( factory == null
  8.     try 
  9.     { 
  10.         factory = DocumentBuilderFactory.newInstance(); 
  11.         builder = factory.newDocumentBuilder(); 
  12.     }catch (Exception e){} 


到sun(oracle)上查询j2ee1.4api文档,发现DocumentBuilder DocumentBuilderFactory不能保证线程安全,所以使用一个parser解析多个xml inputstream时,会有问题

解决方法:
每次解析XML inputstream,使用一个新的parser来解析
Java代码 复制代码 收藏代码
  1. DocumentBuilder builder = null
  2. if ( factory == null ){ 
  3.     //DocumentBuilderFactory 单例 
  4.     factory = DocumentBuilderFactory.newInstance(); 
  5. //每次new一个Builder 
  6. builder = factory.newDocumentBuilder(); 
阅读更多
个人分类: J2EE
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

XML解析之FWK005异常

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭