`
SSailYang
  • 浏览: 313118 次
  • 性别: 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-all

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

    groovy2.3.2

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

    Groovy 动态修改XML

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

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

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

    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 Script 入门

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

    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-sdk-4.0.3

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

    eclipse安装groovy插件的步骤

    ### Eclipse 安装 Groovy 插件的详细步骤与使用指南 #### 一、Groovy 插件的安装 为了能够在 Eclipse 中使用 Groovy 进行开发,首先需要安装 Groovy 插件。以下是详细的安装步骤: 1. **下载 GroovyEclipse.zip ...

    apache-groovy-sdk-4.0.1下载

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

    groovy

    Groovy是一种基于Java平台的、动态的、强大的编程语言,它设计的目标是增强开发者的生产力。Groovy结合了Java的静态类型系统和Python、Ruby等动态语言的灵活性,使得开发者可以更加高效地编写代码。本篇文章将深入...

    groovy in action 中文版 2017.11

    Groovy是一种运行在Java虚拟机上的敏捷开发语言,它提供了与Java无缝集成的能力,同时为开发者带来更加简洁和富有表达性的语法。Groovy提供了大量的动态特性,比如动态类型、闭包、元编程能力等,使得编写脚本或应用...

Global site tag (gtag.js) - Google Analytics