微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Groovy引用Jar包冲突问题

       这篇博客是在工作中使用Groovy过程中发现的一个问题,因为这个问题不太好遇到并且不太好发现问题所在,所以专门写一篇博客分享出来,希望对以后使用Groovy的童鞋们有所帮助。

 

       问题的由来是在一个字符串“前缀”+ssz+“后缀”引发的,具体的业务就是一个模拟量ssz传递的是实时采集的值,当我们在监控画面中展示的时候,用户需要看到这个实时值的单位或者前缀的标识信息,这时候我们就需要在这个模拟量中添加两个字符串。

       这其实有两种做法,一种是在组态中拖拽三个文本框,第一个文本框写前缀,第二个文本框绑定实时值,第三个文本框写后缀,这种实现方法是可行的,但是有非常大的弊端,第一点弊端就是实时值的长度不可控制,如果长度太长会遮盖后缀显示,第二点就是如果后缀是实时值单位的话,用户是不清楚变量的单位的,还需要用户翻阅诸多文档去查阅次实时变量的单位是什么,这是非常不人性化的设计。所以就有了第二种方法,即在设计界面中用户可以读取实时值单位作为前/后缀,让“前缀”+实时值+“后缀”作为整体的形态在运行端进行处理运行。

 

       由于运行态中是通过Groovy语言进行的脚本处理,就遇到了这样一个问题,具体错误信息如下:




       由于在之前调研的时候仅仅对实时值+“后缀”进行了验证,是可行的,所以就没有在进行“前缀”+实时值+“后缀”进行验证,结果问题就发生了,刚开始以为是Groovy不支持这种操作的,所以就写了这样一个Demo作为验证:

 



       发现这种方式是可行的,但是在产品的运行态中就报了上面的异常,经过很长时间的上网搜索终于发现有人说是jar冲突导致的,所以我就继续查阅资料发现json-lib-2.1-jdk15.jar和groovy1.7版本/1.8版本有冲突,所以果断下载json-lib-2.3-jdk15.jar包进行更换,问题得到了解决

 

       其实在这个过程中有两个问题以后应该注意的,第一个就是在做前期可行性调研的时候要全面,不能尝试一半可以就代表全部可以,还有一点就是选技术框架的版本很重要,需要对次版本有很深入的了解,我想这两点以后是需要注意的,当然也以这篇博客和大家共勉,做事情还需认真,全面,避免意想不到问题发生浪费更多的工作量。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐