`
SSailYang
  • 浏览: 315374 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Groovy XmlSlurper 的线程安全问题

阅读更多

项目里用 Groovy 做 XML 解析。在做并发测试的时候发现 Groovy XmlSlurper 存在一个线程安全的问题。(一段时间前解决的问题,日志被删,不能贴出具体异常了)。

 

存在问题的写法是

XmlSlurper xmlSlurper = new XmlSlurper()

 

很简单,就是 new 一个就行了。但是在并发环境下会存在问题,原因是 XmlSlurper 获取 SaxParser 的问题。异常信息是这么写的,具体的原因由于没有细看 XmlSlurper 的源码,所以也就没有资格说了。

 

解决方法是:

def factory = SAXParserFactory.newInstance()
factory.setNamespaceAware(true);
factory.setValidating(false);
SAXParser parser = factory.newSAXParser()
XmlSlurper xmlSlurper = new XmlSlurper(parser)
 
分享到:
评论

相关推荐

    Groovy高效编程

    Groovy作为一种灵活且功能强大的脚本语言,尤其在与Java平台结合时展现出了其独特的优势。在《Groovy高效编程》一文中,作者深入探讨了一系列被称为“匕首方法”的技巧,这些方法因其短小精悍的特点而得名,旨在帮助...

    IDEA groovy生成实体解决乱码问题

    IDEA groovy生成实体解决乱码问题

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...

    groovy-all

    8. **Groovy HTML and XML Processing**: 提供了简洁的API来处理HTML和XML文档,如GPath和XmlSlurper。 9. **Grails Integration**: 虽然未明确提及,但Groovy常用于构建Grails框架的应用,这是一个基于Groovy的...

    groovy2.3.2

    此外,Groovy的`@ThreadSafe`注解可以帮助开发者声明类或方法为线程安全的,提高代码的可读性和可维护性。 Groovy 2.3.2还引入了对Java 8的兼容性,包括Lambda表达式的支持,这使得Groovy代码可以更加简洁和易读。...

    Java调用Groovy,实时动态加载数据库groovy脚本

    1. 引入Groovy库:在Java项目中添加Groovy的相关依赖,通常是`groovy-all`,确保Java能够访问Groovy运行时环境。 2. 创建GroovyClassLoader:使用这个类加载器可以动态加载和执行Groovy脚本。它继承自Java的...

    Groovy 动态修改XML

    1. **解析XML**:首先,使用XMLSlurper或XMLParser将XML字符串或文件转换为Groovy的DOM(文档对象模型)表示。例如: ```groovy def xml = new XmlSlurper().parseText('<xml><node>text</node></xml>') ``` 2. *...

    Groovy.in.Action.2nd.Edition.pdf

    6. Groovy的使用场景:书中详细介绍了Groovy在多个领域的应用,包括并行和函数式编程、对象迭代方法、集合和映射增强、多线程和进程控制、文件和I/O流处理、数据库操作(SQL和NoSQL)等。 7. Web开发、测试、GUI...

    Java中使用Groovy的三种方式

    在Java开发中,Groovy是一种强大的、动态类型的脚本语言,它可以无缝地与Java代码集成,为开发者提供了更简洁、灵活的语法。本文将深入探讨在Java项目中使用Groovy的三种主要方式,并阐述它们各自的优势和应用场景。...

    groovy入门经典,groovyeclipse 插件

    这使得在复杂应用中定位问题变得轻松。 总的来说,Groovy提供了一种高效、简洁的编程方式,而GroovyEclipse插件则让Groovy开发在Eclipse中变得顺畅。无论是新手还是经验丰富的开发者,都能通过学习Groovy和使用...

    groovy-2.3.6-installer

    Groovy是一种动态、开源的编程语言,它是Java平台上的一个JVM(Java Virtual Machine)语言。Groovy结合了Python、Ruby和Perl等脚本语言的简洁性和灵活性,并且完全兼容Java,可以无缝地与Java代码集成。在"groovy-...

    Groovy入门教程

    ### Groovy入门教程知识点详解 #### 一、Groovy简介 **1.1 Groovy的定义** Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了多种现代编程语言的强大特性,如Python、Ruby和Smalltalk等。由于Groovy运行...

    Groovy Script 入门

    ### Groovy Script 入门知识点详解 #### 一、Groovy脚本简介 Groovy是一种灵活的面向对象的编程语言,它运行在Java平台上。由于其语法简洁且与Java高度兼容,因此对于Java开发者来说非常容易上手。Groovy不仅支持...

    Groovy 介绍 官网资源

    - **Ant任务故障排除**:提供了解决在使用Groovy与Ant集成时可能遇到问题的方法。 - **构建支持**:介绍了如何利用Groovy进行项目构建。 - **编译Groovy**:涵盖了使用不同工具和技术(如Maven、Gradle等)编译...

    groovy-all-2.4.8.jar

    - 引入了新的语法特性,比如空安全操作符,使得处理null值更加安全。 - 性能优化,提升了Groovy代码的执行效率。 - 支持Java 8的新特性,如Lambda表达式和默认方法。 4. **使用Groovy-All-2.4.8.jar** - 在Java...

    Groovy入门教程[参照].pdf

    Groovy 入门教程 Groovy 是一种基于 Java 语言的脚本语言,运行在 JVM 中,语法与 Java 相似,但抛弃了 Java 的一些烦琐的语法规则,提供了更加简洁和灵活的编程体验。 Groovy 的特点 1. 简洁的语法:Groovy 语法...

    groovy和Java相互调用1

    标题中的“Groovy和Java相互调用1”指的是在编程时如何在Groovy语言环境中调用Java类,以及反之,如何在Java程序中调用Groovy类。这是一种跨语言交互的方式,特别是在混合使用Groovy和Java的项目中非常常见。 ...

    groovy-3.0.7.msi

    groovy

    apache-groovy-sdk-4.0.1下载

    Apache Groovy SDK 4.0.1 是一个重要的软件开发工具包,专为使用Groovy编程语言进行开发的程序员设计。Groovy是一种基于Java平台的动态、灵活的编程语言,它扩展了Java语言的功能,提供了简洁的语法和强大的元编程...

    groovy-sdk-4.0.3

    Groovy SDK 4.0.3 是一个针对Groovy编程语言的软件开发工具包,它包含了Groovy语言的运行环境和开发所需的各种组件。Groovy是一种动态、灵活的面向对象编程语言,它与Java语法兼容,但提供了更简洁的语法和更强的...

Global site tag (gtag.js) - Google Analytics