Groovy引用Jar包冲突问题
来源:互联网 发布:浙江省定额计价软件 编辑:程序博客网 时间:2024/05/21 17:01
这篇博客是在工作中使用Groovy过程中发现的一个问题,因为这个问题不太好遇到并且不太好发现问题所在,所以专门写一篇博客分享出来,希望对以后使用Groovy的童鞋们有所帮助。
问题的由来是在一个字符串“前缀”+ssz+“后缀”引发的,具体的业务就是一个模拟量ssz传递的是实时采集的值,当我们在监控画面中展示的时候,用户需要看到这个实时值的单位或者前缀的标识信息,这时候我们就需要在这个模拟量中添加两个字符串。
这其实有两种做法,一种是在组态中拖拽三个文本框,第一个文本框写前缀,第二个文本框绑定实时值,第三个文本框写后缀,这种实现方法是可行的,但是有非常大的弊端,第一点弊端就是实时值的长度不可控制,如果长度太长会遮盖后缀显示,第二点就是如果后缀是实时值单位的话,用户是不清楚变量的单位的,还需要用户翻阅诸多文档去查阅次实时变量的单位是什么,这是非常不人性化的设计。所以就有了第二种方法,即在设计界面中用户可以读取实时值单位作为前/后缀,让“前缀”+实时值+“后缀”作为整体的形态在运行端进行处理运行。
由于运行态中是通过Groovy语言进行的脚本处理,就遇到了这样一个问题,具体错误信息如下:
由于在之前调研的时候仅仅对实时值+“后缀”进行了验证,是可行的,所以就没有在进行“前缀”+实时值+“后缀”进行验证,结果问题就发生了,刚开始以为是Groovy不支持这种操作的,所以就写了这样一个Demo作为验证:
发现这种方式是可行的,但是在产品的运行态中就报了上面的异常,经过很长时间的上网搜索终于发现有人说是jar冲突导致的,所以我就继续查阅资料发现json-lib-2.1-jdk15.jar和groovy1.7版本/1.8版本有冲突,所以果断下载json-lib-2.3-jdk15.jar包进行更换,问题得到了解决。
其实在这个过程中有两个问题以后应该注意的,第一个就是在做前期可行性调研的时候要全面,不能尝试一半可以就代表全部可以,还有一点就是选技术框架的版本很重要,需要对次版本有很深入的了解,我想这两点以后是需要注意的,当然也以这篇博客和大家共勉,做事情还需认真,全面,避免意想不到问题发生浪费更多的工作量。
- Groovy引用Jar包冲突问题
- 解决jar引用冲突问题
- 解决jar包冲突问题
- ssh- jar 包冲突问题
- es jar包冲突问题
- 组件化开发中引用aar包引起的jar包冲突问题
- elasticsearch引用jar包与其他jar冲突解决办法
- ObjectMapper引用jar包问题
- Spring与Groovy动态语言集成包冲突问题
- Android Studio 引入Jar包,Jar包冲突问题总结
- ClassLoader解决jar包冲突问题
- spring 和 hibernate jar包冲突问题
- Tomcat6 JBPM4 jar包冲突问题
- Tomcat6 JBPM4 jar包冲突问题
- ssh 整合 jar包 冲突问题
- SSH整合jar包冲突问题
- jar包冲突问题排查总结
- jar包冲突问题排查总结
- Linked List Cycle
- Visualizing Higher-Layer Features of a Deep Network(经典文章阅读)
- LINUX Samba服务器配置
- C#-—单击按钮可以弹出对话框
- 解决RegexKitLite编译报错
- Groovy引用Jar包冲突问题
- 为什么多线程读写 shared_ptr 要加锁?
- 鼠标响应事件 当鼠标经过/移出时切换css
- wincc项目归档数据导出
- 程序员生存定律--成长路上常见的坑(2)
- Linux中fork()函数讲解(转载)
- How To Fix “W: Failed to fetch gzip:/var/lib/apt/lists/partial/… Hash Sum mismatch” Error
- ZOJ 3635 Cinema in Akiba[ 块状数组 ]
- Eclipse下使用MinGW中的gdb调试OpenCV程序