Let's Go!

发布新日志

  • tools

    2011-06-01 00:01:05

     
    HTTPBuilder:使用Groovy操作HTTP资源

    http://my.oschina.net/groovyland/blog/3086

     
    扔掉JUnit,迎接Spock

     

    http://my.oschina.net/groovyland/blog/3091

     

     
    系统监控好工具Dstat

    http://my.oschina.net/flynewton/blog/8253

     

     

     
    Spock 0.4 发布,Java测试框架

     

    http://www.oschina.net/news/9424/Spock-0-4-Java-Test-Framework

  • 01_groovy: xml写入和解析

    2011-05-18 23:42:02

    content ="""<?xml version="1.0" ?>
    <customers>
     <corporate>
         <customer name="Bill Gates" company="Microsoft" />
         <customer name="Steve Jobs" company="Apple" />
         <customer name="Jonathan Schwartz" company="Sun" />
     </corporate>
     <consumer>
         <customer name="John Doe" />
         <customer name="Jane Doe" />
     </consumer>
    </customers>"""

     
    customersFile = new File("D:\\java\\groovycode\\cs.xml")
    pw = new PrintWriter(customersFile)
    pw.print(content);
    pw.flush() ;
    pw.close() ;
    customersFile.eachLine { println it}
    println "==========================================================="
     
    //def customers = new XmlSlurper().parse(new File("D:\\java\\groovycode\\cs.xml"))
    def customers = new XmlSlurper().parse(customersFile)

    for (customer in customers.corporate.customer)
    {
        println "${customer.@name} works for ${customer.@company}"

    }

     

     

    遇到的问题和解决方法:

    1. The processing instruction target matching "[xX][mM][lL]" is not allowed.
    Exception:org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.

    这个异常解释为:xml文件不能被解析,一般出现这样的问题在于xml格式上,并且问题多出现在xml文件的头部。我就是出现了这个问题。昨天还可以正常运行的,今天来了就运行不了了,很奇怪,查看了下错误信息,找到了原因。这是因为我的xml文件头部有两行空行,第三行才开始写


    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

    的。总结:<?xml version="1.0" encoding="UTF-8"?>前面不要有任何其他字符,如空格、回车、换行这些否则就会出现上面的异常。

    http://hi.baidu.com/mingfang0219/blog/item/3e84764226331f1873f05df3.html

    成功解决问题[Fatal Error] test.xml:1:7: The processing instruction target matching "[xX][mM][lL]" is not allowed. 收藏

    对于错误:

    [Fatal Error] test.xml:1:7: The processing instruction target matching "[xX][mM][lL]" is not allowed. org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.  at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:264)  at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)  at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:172)  at TestXML.XmlDemo(TestXML.java:98)  at TestXML.main(TestXML.java:129)

    查询了不少资料,在google上查了不少资料,终于把问题给解决了。

    这个问题主要是因为xml文件不能解析,一般出现这样的问题是在与xml格式上的问题,并且问题多出现在xml文件的头部。

    于是我将xml文件用记事本打开仔细检查了下,果然是xml文件的头部多出了一个问题,将空格去掉保存好了,解析xml文件并读取其中数据就成功了!

    ps.这个xml文件是我自己为了检测程序,自己写的,所以有疏漏,一般机器生成的xml文件应该不存在这样的问题,另外,我在网上查找资料的过程中,看见说eclipse中有个选项可以检查xml文件的有效性,但是我没有找到。。。

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhaopeipei1985/archive/2008/07/10/2633853.aspx


  • groovy_01_介绍和groovy环境配置

    2011-05-10 13:27:21

     

    groovy环境配置:

    下载:
    http://groovy.codehaus.org/Download
    下载:Download zip: Binary Release ----> groovy-binary-1.8.0.zip

    1. windows下,增加环境变量:

    GROOVY_HOME
    D:\java\groovy-1.8.0

    path:
    %GROOVY_HOME%\bin;


    2. linux下,修改环境变量文件:
    GROOVY_HOME=/home/javaread/Applications/groovy-1.5.6
    PATH=$PATH:$GROOVY_HOME/bin:
    export PATH GROOVY_HOME


    3. 配置好之后,验证一下Groovy的安装配置是否成功:
    执行命令:groovy -v
    Groovy Version: 1.8.0 JVM: 1.6.0_10

    环境配置也可以参考:
    http://wenku.baidu.com/view/d8803e8984868762caaed5fe.html

    ==========================================================

    http://hi.baidu.com/javacookies/blog/item/adeeedf44d0c8a66dcc474b3.html

    ================================================================

    手册网站:

    http://www.chinagroovy.org/groovywiki/doku.php

    精通Groovy:

    http://www.ibm.com/developerworks/cn/edu/j-dw-java-jgroovy-i.html

    需要使用Ibm帐号登陆.

    一个Groovy&Grails学习资料非常全的博客:

    http://www.blogjava.net/BlueSUN/archive/2007/04/23/112978.html

    一些Groovy的网站:

    http://groovy.codehaus.org                 Groovy官网
    http://groovy.dzone.com                   Everything for the Groovy & Grails developer
    http://www.groovygrails.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Your Source for Groovy / Grails Training
    http://grails-exchange.com                  著名的Grails交流大会官网,可以找到大会上演说的资料和大会Blog
    http://grails.codehaus.org                   Grails官网
    http://pleac.sourceforge.net/pleac_groovy/index.html
    http://grails.group.javaeye.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JavaEye的GoG圈子
    http://www.groovycn.cn/Html/Index.html Groovy中国
    http://tech.it168.com/zt/Groovy/index.html&nbsp;&nbsp; 入门可以去看看
    http://developer.51cto.com/art/200710/58087.htm
    http://www.groovyblogs.org&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Groovy Blogs
    http://www.aboutgroovy.org&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;About Groovy 有一些著名的Grails的项目

    ==========================================================

    cacti

    http://www.cacti.net/documentation.php

    Groovy

    http://baike.baidu.com/view/707298.htm

    扩展阅读:
    • 1 IBM Developers
    • 2 http://dist.groovy.codehaus.org/distributions/groovy-binary-1.5.0.zip 官方下载地址:
    • 3 http://groovy.codehaus.org官方主页
    • 4 http://groovy.codehaus.org/Download 官方下载页面


    Groovy创始人:Java面临终结 Scala将取而代之
    http://news.cnblogs.com/n/70574/

    Groovy—沉睡的雄狮

    http://www.cnblogs.com/cnblogs_2010/archive/2010/08/20/1804154.html

     

    Scala  http://baike.baidu.com/view/1588150.htm

     

    Groovy入门教程
    http://blog.csdn.net/kmyhy/archive/2009/05/19/4200563.aspx

    http://wenku.baidu.com/view/18dabb1ba8114431b90dd8d2.html

    http://www.jingege.me/blog/technology/groovy-exec-shell.html

    Groovy执行shell命令

    def command = """ping -c1 -W1 hostname"""
    // Call *execute* on the string
    def proc = command.execute()
    // Wait for the command to finish
    proc.waitFor()

    // Obtain status and output
    println "return code: ${ proc.exitValue()}"
    println "stderr: ${proc.err.text}"

    // *out* from the external program is *in* for groovy
    println "stdout: ${proc.in.text}"

     

     

    groovy 简单的 cli builder 来构建命令行程序

    http://blog.chenlb.com/2008/12/groovy-cli-builder-easy-build-command-line-program.html

     

     

    写 java 的 main 类时,有很多参数,我们都会选择用 apache commons cli 来构建命令行程序。但参数一多,就觉得有点烦琐了。今天发现,groovy 的 CliBuilder 用起来比较简单一些。来看一下示例:

    1. // command line interface builder   
    2. def cli = new CliBuilder()   
    3. cli.h( longOpt: 'help', required: false, 'show usage information' )   
    4. cli.d( longOpt: 'dir', argName: 'dir', required: false, args: 1'this is base dir' )   
    5. cli.f( longOpt: 'foo', argName: 'foo', required: true, args: 1'this is required option, you must be set' )   
    6. cli.b( longOpt: 'bar', required: false, 'this is boolean option, defalut is false' )   
    7.   
    8. def opt = cli.parse(args)   
    9. if (!opt) { return }   
    10. if (opt.h) {   
    11.   cli.usage();   
    12.   return  
    13. }   
    14.   
    15. if(opt.d) {   
    16.     println 'you use option -d, value:'+opt.d   
    17. }   
    18. if(opt.f) {   
    19.     println 'you use option -f, value:'+opt.f   
    20. }   
    21. if(opt.b) {   
    22.     println 'you use option -c, value:'+opt.b   
    23. }  

     

     

     

    运行:

    1. E:\gsh>groovy cliuse.groovy -d other   
    2. error: -f   
    3. usage: groovy   
    4.  -b,--bar         this is boolean option, defalut is false   
    5.  -d,--dir <dir>   this is base dir   
    6.  -f,--foo <foo>   this is required option, you must be set   
    7.  -h,--help        show usage information   
    8.   
    9. E:\gsh>groovy cliuse.groovy -f myFoo -d   
    10. error: no argument for:d   
    11. usage: groovy   
    12.  -b,--bar         this is boolean option, defalut is false   
    13.  -d,--dir <dir>   this is base dir   
    14.  -f,--foo <foo>   this is required option, you must be set   
    15.  -h,--help        show usage information   
    16.   
    17. E:\gsh>groovy cliuse.groovy -f myFoo -d myDir -b   
    18. you use option -d, value:myDir   
    19. you use option -f, value:myFoo   
    20. you use option -c, value:true  

    简单解说一下上面的运行结果:第一、没有用 -f 选项,它报错并输出 usage;第二、选项 -d 同有参数,它报错并输出 usage;第三、正确运行。

    我认为,以写 main 类,或以用 groovy 代替了,用 groovy 也可以取消配置文件了(groovy 文件可以认为是配置文件)。

     

     

     

     

     

     

     

Open Toolbar