Posts tagged: groovy

Grails使用JQuery实现Ajax方式的自动完成

在Grails使用JQuery UI实现最简单自动完成中实现了简单的自动完成。但是不具实战意义。因为一般自动完成都是通过ajax的方式在服务器端自动获取的。 这里实现一个简单的通过Ajax实现的示例。首先,在服务器端创建一个假的返回结果页面。url为: http://your_server:port/your_app/b.txt 正式使用的时候,这个url可以是动态返回结果的,比如这样: http://your_server:port/your_app/b.gsp?keyword=a 返回的结果格式为json,这里把Grails使用JQuery UI实现最简单自动完成中的数组直接拿过来即可:    发送文章为PDF   

星期二 七月 5th, 2011 in , , , , | 1 Comment »

Grails使用JQuery UI实现最简单自动完成

Grails 1.4已经默认集成JQuery了。加入很方便,在gsp页面中: <html>    <head>      <r:require module="jquery"/>       <r:layoutResources/>    </head>    <body>    </body> </html> 通过浏览器查看该文件,可以确定使用的jquery的哪个版本: <html>    <head>            <script src="/AjaxDemos/static/plugins/jquery-1.6.1.1/js/jquery/jquery-1.6.1.min.js" type="text/javascript" ></script>      </head>    <body>    </body> </html> 日志引用Grails使用JQuery实现Ajax方式的自动完成    发送文章为PDF   

星期二 七月 5th, 2011 in , , , , , | 1 Comment »

写了个groovlet原型,并能生成QR二维码

现在要同事用groovlet,才发现以前写的没有提供源代码,使用groovlets的最简单示例。 于是再写一个,并且把前阶段的生成条形码图的示例包含进来(生成QR二维码图片的简单示例)。 在chrome下,可以直接在URL的参数content后面跟中文字符,测试没有问题,可能其他浏览器有的需要做BASE64编码。    发送文章为PDF   

星期五 六月 11th, 2010 in , , , | No Comments »

groovy编写webservice

使用java编写webservice已经简单多了,但是要借助第三方工具或者框架,比如spring,学习成本还是比较高的。 groovy可以瞬间搭建起webservice的服务。 webservice基本原理 先简单介绍一下webservice。一般使用的是http协议(也可以是其他传输协议的),传输xml格式文本信息。一般用webservice做RPC,也就是Remote Procedure Call,即远程过程调用。 远程过程调用是和本地过程调用相对的,本地过程调用,就是比如java代码里面调用一个方法,那么有方法参数,调用后有返回值。 远程过程调用无非是通过网络远程调用一个“方法”而已。可以近似的认为,方法名是一个url,方法的参数是http请求部分,返回值是http响应。 webservice通过http传输的文本格式,是遵循xml格式的,而且,可以看出有一定的文档格式,这个格式是就是soap协议。 刚才说的都是比较底层和基本的原理,实际上编程语言调用webservice,使用编程语言自带的webservice API,已经不会碰到这样底层的东西了,比如说操作http请求和响应,比如java,看上去很像调用一个java方法一样。    发送文章为PDF   

星期四 十一月 26th, 2009 in , , | No Comments »

groovy实现监控目录的基本功能

以前用java实现过一个,其中使用到第三方实现,参见java监听文件目录的改变。现在在groovy中调用这个第三方库实现监控目录中增加的视频文件,并将这些文件的路径信息作为消息发送到jms队列中,供实现groovy通过队列消息转换视频程序使用。    发送文章为PDF   

星期三 十一月 25th, 2009 in , | No Comments »

实现groovy通过队列消息转换视频

上文实现转换视频的最简单groovy程序实现了简单的转换视频功能,只能根据参数做一次转换。需要实现的需求是,跑在后台,根据要求转换视频。 可以自己实现这样的生产者消费者模式,实现一个队列机制,然后启动线程阻塞在空队列上,有生产者放到队列里一条消息,比如转换test.mov为test.mp4,然后线程得到通知消费这个消息,并从队列中删除消息。 这个思路是好的,但是不需要自己写这些代码,可以借助第三方API,使用JMS,这里用到的是JMS的开源免费实现ActiveMQ。具体安装参见tomcat下部署activemq。 好处是省去了自己写底层代码和相关的测试维护工作。而且,activemq自带web管理界面,我们可以先实现消费者(也就是转换视频功能),而通过web管理界面手工生成消息。 生成一条消息,消息正文很简单: test.mov;test.mp4 分号隔开,前者是需要转换的视频文件路径,后者是转换的文件路径。 在activemq的web console中填写并发送这条消息。 日志引用groovy实现监控目录的基本功能    发送文章为PDF   

星期三 十一月 25th, 2009 in , , , | No Comments »

实现转换视频的最简单groovy程序

转换视频,使用的是ffmpeg,因为是在ubuntu(目前是9.04版本)下做开发,需要事先安装ffmpeg,可参考ubuntu server安装ffmpeg支持3gp。 另外,groovy需要支持grape,具体配置,见在groovy中使用grape管理类库依赖。 代码很简单,VideoConvertor.groovy: #!/usr/bin/env groovy import groovy.lang.Grab; import org.apache.log4j.* @Grab(group="log4j",module="log4j",version="1.2.12") class Convertor{     private static Logger logger=Logger.getLogger(Convertor.class)     static{         PropertyConfigurator.configure("log4j.properties");                    }     def convert(input,output){         def time=new Date().time         def file=new File(output)         if(file.exists()){             file.delete()             logger.debug("delete file ${output}.")         }         def process="ffmpeg -i ${input} ${output}".execute()         process.waitFor()         logger.debug("生成${output}成功,耗时${new [...]

星期三 十一月 25th, 2009 in , , | No Comments »

在groovy中使用grape管理类库依赖

groovy 1.6增加了grape,用于自动管理groovy引用第三方类库的依赖问题。 见: http://groovy.codehaus.org/Grape 安装groovy1.6.x以后,可以通过grape命令查看目前缓存的类库情况: marshal@ubuntu-desktop:~/workspace$ grape list 0 Grape modules cached 0 Grape module versions cached 可以grape命令增加新的类库,比如加入jetty6.1.6嵌入式版本: grape install org.mortbay.jetty jetty-embedded 6.1.6 执行后,再次执行grape list: marshal@ubuntu-desktop:~/workspace$ grape list org.mortbay.jetty jetty-util  [6.1.6] org.mortbay.jetty jetty  [6.1.6] org.mortbay.jetty project  [6.1.6] org.mortbay.jetty jetty-embedded  [6.1.6] org.mortbay.jetty servlet-api-2.5  [6.1.6] javax.servlet.jsp jsp-api  [2.1]   日志引用实现转换视频的最简单groovy程序    发送文章为PDF   

星期二 十一月 24th, 2009 in , , , , | No Comments »

swing在ubuntu下中文乱码问题

使用swing编写图形界面,可以在windows下和linux(ubuntu)下创建一致的图形界面应用。但是编写swing使用java,需要编译,语法也比较繁琐。 使用groovy的swing支持,可以简化swing开发,可参见: http://groovy.codehaus.org/Swing+Builder 这里对上面链接中的第一个示例稍作改动: #!/usr/bin/env groovy import groovy.swing.SwingBuilder import java.awt.BorderLayout as BL def swing = new SwingBuilder() count = 0 def textlabel def frame = swing.frame(title:’示例’, size:[300,300]) {     borderLayout()     textlabel = label(text:"请点击按钮", constraints: BL.NORTH)     button(text:’请点击’,             actionPerformed: {count++; textlabel.text = "点击 ${count} 次。"; println "点击"},             constraints:BL.SOUTH) } frame.pack() frame.show()      [...]

星期二 十一月 24th, 2009 in , , | No Comments »

为groovy原型增加前端同步接收消息示例

groovy原型的前端部分,手机端会通过http定时发送请求并获取相应。从jms队列中取走一个消息。这个过程,因为是http协议,不能保持连接,因此只能同步的获取jms消息。 增加的代码见sms_send.gsp:    发送文章为PDF   

星期二 十一月 24th, 2009 in , , | No Comments »