- 浏览: 546047 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (174)
- Groovy (28)
- Grails (14)
- DHTML (5)
- JS (4)
- jQuery (16)
- JAVA (16)
- Eclipse (4)
- Hibernate (2)
- Resin (2)
- Oracle (25)
- Maven (4)
- Struts2 (1)
- WebWork2 (3)
- Tomcat (2)
- Windows7 (4)
- Griffon (2)
- PowerDesigner (1)
- Pro*C (2)
- JDK (1)
- 乱码 (2)
- WebService (3)
- .NET (1)
- 性能 (2)
- 安装 (1)
- 命令行 (1)
- function (1)
- type (1)
- Mysql (1)
- 同步 (1)
- Synchronized (1)
- json (3)
- Office (1)
- Visio (1)
- 自定义形状 (1)
- jsong (0)
- gson (1)
- fastjson (1)
- EM (1)
- DB2 (6)
- Sequence (1)
- RHEL5.x (1)
- WAS6.1 ND (1)
- SQL (1)
- -964 (1)
- Linux (4)
- Date (1)
- Format (1)
- Add (1)
- SHELL (1)
- CSS (2)
- Bootstrap (1)
- nginx (1)
- Openresty (2)
- JWPlayer (1)
- showdoc (1)
- 常用网址 (1)
- lua (2)
- SpringBoot (1)
- Office pdf linux (1)
最新评论
-
纵观全局:
Great
阿里巴巴开源JSON解析组件FastJson简单使用笔记 -
guxuede:
...
Groovy编程技巧 -
a1439226817:
groovy用的多吗?我还没发现有哪个java项目在用这个?
Groovy同步 -
晴子9034:
在网上搜到的几乎全是说满了就扩充。但是我有个疑问,满了就扩充, ...
解决DB2 SQLCODE=-964日志文件满的问题 -
在世界的中心呼喚愛:
好东西啊,就用这个包。
阿里巴巴开源JSON解析组件FastJson简单使用笔记
个人总结,网上几乎没有此方面资料,有一篇帖子,按照其内容无法运行。
注意:请以帖子内容为准,附件为参考
环境:windows7+jdk1.6.0.31+groovy1.8.6
1. 安装jdk和groovy并配置环境变量,略。
2. 安装groovyws0.5.2
3. 编写服务(这里写2个例子,一个是算术、一个是格式化日期):
1)算术服务
2)格式化日期服务
3. 编写服务启动groovy脚本
4. 编写客户端测试groovy脚本
============= 华丽的分割线 =================
补充:编写连接数据库的服务并返回JSON格式数据
DataService.groovy
并添加到服务启动的groovy脚本中:
调用方法1:
输出结果:
调用方法2:
输出结果:
调用方法3:
输出结果:
注意:请以帖子内容为准,附件为参考
环境:windows7+jdk1.6.0.31+groovy1.8.6
1. 安装jdk和groovy并配置环境变量,略。
2. 安装groovyws0.5.2
命令行>:grape install org.codehaus.groovy.modules groovyws 0.5.2
3. 编写服务(这里写2个例子,一个是算术、一个是格式化日期):
1)算术服务
class MathService { double add(double arg0, double arg1) { return (arg0 + arg1) } double square(double arg0) { return (arg0 * arg0) } }
2)格式化日期服务
class DateFormatService{ String format(long time){ new Date(time).format('yyyy年MM月dd日') } }
3. 编写服务启动groovy脚本
import groovyx.net.ws.WSServer @Grab(group='org.codehaus.groovy.modules', module='groovyws', version='0.5.2') def server = new WSServer() server.setNode("DateFormatService", "http://10.14.3.149:6980/DateFormatService") server.start() def s1 = new WSServer() s1.setNode("MathService", "http://10.14.3.149:6980/MathService") s1.start()
4. 编写客户端测试groovy脚本
import groovyx.net.ws.WSClient @Grab(group='org.codehaus.groovy.modules', module='groovyws', version='0.5.2') def printDate(){ def proxy = new WSClient("http://10.14.3.149:6980/DateFormatService?wsdl", this.class.classLoader) proxy.initialize() println "今天是${proxy.format(new Date().time)}" } printDate()
============= 华丽的分割线 =================
补充:编写连接数据库的服务并返回JSON格式数据
DataService.groovy
import groovy.sql.Sql import groovy.json.JsonOutput class DataService{ String poses(){ def db = Sql.newInstance("jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.14.3.148)(PORT = 1521)))(CONNECT_DATA =(SID = orcl)))","ecard","ecard","oracle.jdbc.driver.OracleDriver") def poses = db.rows("select * from OCS_DM_Terminal ") def retJson = new JsonOutput() return retJson.toJson(poses) } }
并添加到服务启动的groovy脚本中:
import groovyx.net.ws.WSServer @Grab(group='org.codehaus.groovy.modules', module='groovyws', version='0.5.2') def server = new WSServer() server.setNode("DateFormatService", "http://10.14.131.114:6980/DateFormatService") server.start() def s1 = new WSServer() s1.setNode("MathService", "http://10.14.131.114:6980/MathService") s1.start() def s2 = new WSServer() s2.setNode("DataService", "http://10.14.131.114:6980/DataService") s2.start()
调用方法1:
import groovyx.net.ws.WSClient @Grab(group='org.codehaus.groovy.modules', module='groovyws', version='0.5.2') def test(){ def url = "http://10.14.131.114:6980/DataService?WSDL" def proxy = new WSClient(url, this.class.classLoader) proxy.initialize() def ret = proxy.poses() println ret.toString() } test()
输出结果:
[{"ID":181,"SYS_CODE":"02","CLIENT_ID":null,"GROUP_ID":24,"MERC_NO":41,"TYPE":null,"KIND":6,"STATIONNO":2,"NAME":null,"STATIONNO_ID":null,"DESCRIPTION": null,"BANK_ID":"10019999","SET_DATE":"2011-10-08T08:32:29+0000","FLAG":"0","BLACK_FLAG":0,"CANCEL_BLACK_FLAG":0,"BLACK_LIST_ID":0,"TERM_NAME":null,"MENU _VERSION":"0","BATCHNO":"000000"},{"ID":161,"SYS_CODE":"04","CLIENT_ID":null,"GROUP_ID":205,"MERC_NO":1,"TYPE":null,"KIND":6,"STATIONNO":4,"NAME":null," STATIONNO_ID":null,"DESCRIPTION":null,"BANK_ID":"55555555","SET_DATE":"2011-09-17T03:38:33+0000","FLAG":"1","BLACK_FLAG":0,"CANCEL_BLACK_FLAG":0,"BLACK_ LIST_ID":0,"TERM_NAME":null,"MENU_VERSION":"0","BATCHNO":"000000"},{"ID":101,"SYS_CODE":"01","CLIENT_ID":205,"GROUP_ID":124,"MERC_NO":1,"TYPE":"11","KIN D":7,"STATIONNO":1,"NAME":null,"STATIONNO_ID":null,"DESCRIPTION":null,"BANK_ID":"22019999","SET_DATE":"2011-09-26T08:40:24+0000","FLAG":"0","BLACK_FLAG" :0,"CANCEL_BLACK_FLAG":0,"BLACK_LIST_ID":0,"TERM_NAME":null,"MENU_VERSION":"0520110916170215","BATCHNO":"000012"},{"ID":102,"SYS_CODE":"02","CLIENT_ID": 26,"GROUP_ID":24,"MERC_NO":41,"TYPE":"11","KIND":8,"STATIONNO":1,"NAME":null,"STATIONNO_ID":null,"DESCRIPTION":null,"BANK_ID":"11019999","SET_DATE":"201 1-09-16T05:37:24+0000","FLAG":"1","BLACK_FLAG":0,"CANCEL_BLACK_FLAG":0,"BLACK_LIST_ID":0,"TERM_NAME":null,"MENU_VERSION":"0520110906111247","BATCHNO":"0 00000"},{"ID":121,"SYS_CODE":"01","CLIENT_ID":null,"GROUP_ID":124,"MERC_NO":1,"TYPE":null,"KIND":6,"STATIONNO":2,"NAME":null,"STATIONNO_ID":null,"DESCRI PTION":null,"BANK_ID":"33019999","SET_DATE":"2011-10-08T01:34:28+0000","FLAG":"0","BLACK_FLAG":0,"CANCEL_BLACK_FLAG":0,"BLACK_LIST_ID":0,"TERM_NAME":nul l,"MENU_VERSION":"0520110916170215","BATCHNO":"000000"},{"ID":141,"SYS_CODE":"01","CLIENT_ID":null,"GROUP_ID":124,"MERC_NO":41,"TYPE":null,"KIND":9,"STA TIONNO":3,"NAME":null,"STATIONNO_ID":null,"DESCRIPTION":null,"BANK_ID":"33333333","SET_DATE":"2011-10-10T08:19:57+0000","FLAG":"0","BLACK_FLAG":0,"CANCE L_BLACK_FLAG":0,"BLACK_LIST_ID":0,"TERM_NAME":null,"MENU_VERSION":"0","BATCHNO":"000000"},{"ID":201,"SYS_CODE":"02","CLIENT_ID":325,"GROUP_ID":24,"MERC_ NO":41,"TYPE":"11","KIND":8,"STATIONNO":3,"NAME":"\u89E6\u6478\u5C4F","STATIONNO_ID":"3","DESCRIPTION":null,"BANK_ID":"10010001","SET_DATE":"2011-10-09T 09:35:50+0000","FLAG":"0","BLACK_FLAG":0,"CANCEL_BLACK_FLAG":0,"BLACK_LIST_ID":0,"TERM_NAME":null,"MENU_VERSION":"0","BATCHNO":"000000"}]
调用方法2:
import groovyx.net.ws.WSClient import groovy.json.JsonSlurper @Grab(group='org.codehaus.groovy.modules', module='groovyws', version='0.5.2') def test(){ def url = "http://10.14.131.114:6980/DataService?WSDL" def proxy = new WSClient(url, this.class.classLoader) proxy.initialize() def ret = proxy.poses() def slurper = new JsonSlurper() def states = slurper.parseText(ret) states.each{ println it.NAME } // println ret } test()
输出结果:
null null null null null null 触摸屏
调用方法3:
import groovyx.net.ws.WSClient import groovy.json.JsonSlurper import groovy.json.JsonOutput import groovy.json.JsonBuilder @Grab(group='org.codehaus.groovy.modules', module='groovyws', version='0.5.2') def test(){ def url = "http://10.14.131.114:6980/DataService?WSDL" def proxy = new WSClient(url, this.class.classLoader) proxy.initialize() def ret = proxy.poses() def slurper = new JsonSlurper() def states = slurper.parseText(ret) def x = new JsonBuilder (states) println x.toPrettyString() //println JsonOutput.prettyPrint(states.toString()) /* states.each{ println it.NAME }*/ // println ret } test()
输出结果:
[ { "GROUP_ID": 24, "TERM_NAME": null, "NAME": null, "DESCRIPTION": null, "CLIENT_ID": null, "STATIONNO": 2, "MENU_VERSION": "0", "BLACK_FLAG": 0, "MERC_NO": 41, "BATCHNO": "000000", "SET_DATE": "2011-10-08T08:32:29+0000", "ID": 181, "SYS_CODE": "02", "BANK_ID": "10019999", "BLACK_LIST_ID": 0, "STATIONNO_ID": null, "KIND": 6, "CANCEL_BLACK_FLAG": 0, "FLAG": "0", "TYPE": null }, { "GROUP_ID": 205, "TERM_NAME": null, "NAME": null, "DESCRIPTION": null, "CLIENT_ID": null, "STATIONNO": 4, "MENU_VERSION": "0", "BLACK_FLAG": 0, "MERC_NO": 1, "BATCHNO": "000000", "SET_DATE": "2011-09-17T03:38:33+0000", "ID": 161, "SYS_CODE": "04", "BANK_ID": "55555555", "BLACK_LIST_ID": 0, "STATIONNO_ID": null, "KIND": 6, "CANCEL_BLACK_FLAG": 0, "FLAG": "1", "TYPE": null }, { "GROUP_ID": 124, "TERM_NAME": null, "NAME": null, "DESCRIPTION": null, "CLIENT_ID": 205, "STATIONNO": 1, "MENU_VERSION": "0520110916170215", "BLACK_FLAG": 0, "MERC_NO": 1, "BATCHNO": "000012", "SET_DATE": "2011-09-26T08:40:24+0000", "ID": 101, "SYS_CODE": "01", "BANK_ID": "22019999", "BLACK_LIST_ID": 0, "STATIONNO_ID": null, "KIND": 7, "CANCEL_BLACK_FLAG": 0, "FLAG": "0", "TYPE": "11" }, { "GROUP_ID": 24, "TERM_NAME": null, "NAME": null, "DESCRIPTION": null, "CLIENT_ID": 26, "STATIONNO": 1, "MENU_VERSION": "0520110906111247", "BLACK_FLAG": 0, "MERC_NO": 41, "BATCHNO": "000000", "SET_DATE": "2011-09-16T05:37:24+0000", "ID": 102, "SYS_CODE": "02", "BANK_ID": "11019999", "BLACK_LIST_ID": 0, "STATIONNO_ID": null, "KIND": 8, "CANCEL_BLACK_FLAG": 0, "FLAG": "1", "TYPE": "11" }, { "GROUP_ID": 124, "TERM_NAME": null, "NAME": null, "DESCRIPTION": null, "CLIENT_ID": null, "STATIONNO": 2, "MENU_VERSION": "0520110916170215", "BLACK_FLAG": 0, "MERC_NO": 1, "BATCHNO": "000000", "SET_DATE": "2011-10-08T01:34:28+0000", "ID": 121, "SYS_CODE": "01", "BANK_ID": "33019999", "BLACK_LIST_ID": 0, "STATIONNO_ID": null, "KIND": 6, "CANCEL_BLACK_FLAG": 0, "FLAG": "0", "TYPE": null }, { "GROUP_ID": 124, "TERM_NAME": null, "NAME": null, "DESCRIPTION": null, "CLIENT_ID": null, "STATIONNO": 3, "MENU_VERSION": "0", "BLACK_FLAG": 0, "MERC_NO": 41, "BATCHNO": "000000", "SET_DATE": "2011-10-10T08:19:57+0000", "ID": 141, "SYS_CODE": "01", "BANK_ID": "33333333", "BLACK_LIST_ID": 0, "STATIONNO_ID": null, "KIND": 9, "CANCEL_BLACK_FLAG": 0, "FLAG": "0", "TYPE": null }, { "GROUP_ID": 24, "TERM_NAME": null, "NAME": "触摸屏", "DESCRIPTION": null, "CLIENT_ID": 325, "STATIONNO": 3, "MENU_VERSION": "0", "BLACK_FLAG": 0, "MERC_NO": 41, "BATCHNO": "000000", "SET_DATE": "2011-10-09T09:35:50+0000", "ID": 201, "SYS_CODE": "02", "BANK_ID": "10010001", "BLACK_LIST_ID": 0, "STATIONNO_ID": "3", "KIND": 8, "CANCEL_BLACK_FLAG": 0, "FLAG": "0", "TYPE": "11" } ]
- ws.rar (919 Bytes)
- 下载次数: 22
发表评论
-
阿里巴巴开源JSON解析组件FastJson简单使用笔记
2012-07-13 15:02 50915惯例,直接上代码,环境:groovy1.8.6+jdk1.6. ... -
Gson使用笔记
2012-07-13 14:56 1727直接看代码,环境为groovy1.8.6+jdk1.5.31, ... -
Groovy同步
2012-05-30 14:30 1837原贴点击这里 在 groovy 中同步 我的项目与 gro ... -
Grails编写WebService客户端
2012-05-28 13:39 2889环境:jdk1.6.0.31 + Grails2.0.4 1. ... -
使用Groovy进行Socket编程之-字节数组版
2011-12-30 14:53 3627服务端代码: import java.net.Server ... -
[JAVA]使用axis调用.NET写的WebService
2011-12-21 16:28 1974参考:http://wenwen.soso.com ... -
Groovy连接2个数据库进行数据操作
2011-11-21 11:37 2138import groovy.sql.Sql clas ... -
(转)Groovy 1.8中的超炫JSON支持
2011-07-29 14:51 2339http://www.groovyq.net/content/ ... -
(转)打动你朋友的11条Groovy超炫代码
2011-07-21 16:20 1527http://www.groovyq.net/content/ ... -
Groovy 浅入
2010-08-31 13:53 2025转贴地址:http://nottiansyf.iteye.co ... -
一个Grovvy开发者的总结!
2010-08-09 15:58 2746转自:http://blog.donews.com/WFoxd ... -
实战 Groovy: 构建和解析 XML
2010-08-09 15:39 1498原贴地址:http://www.ibm.com/develop ... -
如何使用groovyc 和 groovy
2010-08-09 15:32 3262开发人员可直接调用Groovy编译器来编译脚本文件,命令 ... -
Groovy脚本文件里边静态main方法
2010-08-09 15:30 1272class Test2 {//含有static void ... -
Groovy中文件追加和日期格式化
2010-08-09 15:28 2046new File("record.txt" ... -
Groovy配置文件的读写
2010-08-09 15:26 5117import org.asdtiang.util.DESC ... -
Groovy DES加解密
2010-08-09 15:25 2388import java.security.* import ... -
(转)HTTPBuilder:使用Groovy操作HTTP资源
2010-08-09 15:20 3810如今的Web,孤立的应用已经不再吃香,随之而来的是与其 ... -
使用Groovy进行Socket编程之-普通文本版
2010-08-03 12:27 2683服务端代码: import java.net.Serve ... -
(转)Groovy风格的JDBC编程
2010-06-09 16:08 1716原贴地址:http://www.groov ...
相关推荐
基于遗传算法神经网络的抗乳腺癌候选药物优化建模.zip
FFmpeg是一款功能强大的开源多媒体处理工具,广泛应用于视频和音频的编码、解码、转换以及流媒体处理。然而,由于历史原因和标准限制,原生的FFmpeg并不支持将H.265(高效视频编码)格式的视频流封装到FLV(Flash Video)容器中。FLV是一种常见的网络流媒体传输格式,但其最初设计时并未考虑现代高效的H.265编码标准。因此,当尝试将H.265编码的视频与FLV容器结合时,会出现“Video codec hevc not compatible with flv”的错误提示,表明FFmpeg无法识别这种组合。 为了解决这一问题,开发者通常需要对FFmpeg的源代码进行修改和扩展。一个名为“用于解决ffmpeg不支持flv+h265需要修改的文件.zip”的压缩包中包含了一些源代码文件,这些文件旨在扩展FFmpeg的功能,使其能够处理FLV容器中的H.265编码内容。压缩包中的三个关键文件分别是“flvdec.c”“flvenc.c”和“flv.h”,它们分别对应FLV的解码器、编码器和头文件。 flvdec.c:这是FFmpeg的FLV解码器源代码,经过修改后可能支持读取和解析包含H.265数据的FLV流。解码器的作用是从FLV容器中提取视频数据,并将其转换为可处理的原始像素格式。 flvenc.c:这个文件包含FLV编码器的源代码,经过调整后可能允许将H.265编码的视频流封装到FLV容器中。编码器负责将原始视频数据编码为H.265格式,并将其打包到FLV文件中。 flv.h:这是一个头文件,定义了FLV格式相关的常量、结构体和函数原型。修改该文件可能涉及添加或更新与H.265支持相关的定义和接口。 要应用这些修改,开发者需要重新编译FFmpeg源代码,并将修改后的版本替换原有的FFmpeg安装。这样,用户就可以使用定制版的FFmpeg来处理FLV+H.265的
IBMPC服务器故障诊作业流程.docx
上行SC-FDMA协作通信系统中联合SFBC编码的物理层加密传输方案.zip
Python示例源码-Python自动绘图-大作业.zip
泛微协同OA助力流程管理4步走.pdf
Python示例源码-从列表中随机选词-大作业.zip
ios游戏开发--Cocos2D-x中的物理引擎名师公开课获奖课件百校联赛一等奖课件.pptx
LabVIEW串口DataSocketTCPWeb专业知识讲座.pptx
java前端开发毕业设计.docx
Labview串口通信开发实例.doc
内容概要:本文详细介绍了在一个大型包膜机项目中,西门子PLC的应用及其相关技术细节。项目采用西门子PLC作为核心控制器,配合气缸、机械手、模拟量等硬件设备,通过软件博图实现自动化控制。文中重点讨论了PLC的硬件配置、FB块的应用、Modbus RTU通讯的优化、威纶通触摸屏程序的构建以及PTO控制20个轴的具体实现方法。通过对各个部分的技术解析,展示了PLC在复杂工业环境中的卓越性能和稳定性。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对PLC编程和控制系统有研究的人群。 使用场景及目标:适用于需要深入了解PLC在大型项目中的应用,特别是涉及气缸、机械手、模拟量等硬件设备的自动化控制系统的开发和维护。目标是提升生产效率和质量,确保系统的稳定性和可靠性。 其他说明:本文不仅提供了理论指导,还结合了实际案例,帮助读者更好地理解和掌握PLC在工业自动化中的应用。
java笔试题以及答案.pdf
基于FLUENT超声振动流场的数值模拟.zip
基于ANSYS的微流控芯片装载系统夹具建模与仿真分析.zip
基于HyperWorks的重型自卸汽车车架有限元分析和改进设计.pdf
Python源码-商城源码.zip
Python示例源码-请假条-大作业.zip
内容概要:本文详细介绍了三菱FX3U系列PLC的两轴(XZ轴)控制程序,涵盖点动、回零、相对与绝对定位等功能的具体实现。文章通过具体的梯形图代码解释了各个功能模块的工作原理,如手动模式下的点动控制、回零时的近点信号抖动处理以及绝对定位中的指令执行完成标志处理等。此外,文中还提供了许多实际应用中的注意事项和技术细节,如脉冲定时器的使用、模式切换时的速度渐变处理等。同时,附带的故障代码表为实际调试提供了极大的便利。 适合人群:从事工业自动化控制领域的工程师和技术人员,尤其是对三菱FX3U PLC有初步了解并希望深入掌握其两轴控制程序的人群。 使用场景及目标:适用于需要理解和编写三菱FX3U PLC两轴控制程序的场合,帮助用户快速上手并解决常见问题,提高编程效率和系统稳定性。 其他说明:本文不仅提供了详细的程序解析,还包括了许多来自实际项目的经验分享,有助于读者更好地理解和应对实际工程中的挑战。
Python示例源码-S3文件上传-大作业.zip