AVAYA java.lang.Exception: javax.servlet.ServletException: empty String

      在基于Avaya Dialog Design平台的电话银行系统的开发维护过程中遇到过empty String错误。在本文中给出错原因分析及解决。

      Application在Prod Server的日志中发生了empty String Error, 我们要根据AIX6.0系统提供的http_access.log和trace.log的日志来分析问题产生的节点及原因, 

并提交解决方案报告,然而由于Application部署在Prod上,Administer为达到更好的系统系能将trace.log日志的级别调整到了Error而不是Info,所以日志提供的信息有限,

只能看到sessionid的信息及错误异常 java.lang.Exception: javax.servlet.ServletException: empty String。通过日志的分析只能定位到flow中,而具体的节点则无法确定。

 到Avaya开发论坛搜索到两条相关的信息,得到提示。

     https://devconnect.avaya.com/public/forum/d_forum_3.jsp?t=6260&f=6

     https://devconnect.avaya.com/public/forum/d_forum_3.jsp?t=3459&f=6

   在Team高手的帮组下,定位到了出现问题的可疑节点,而这些节点都有一个共同的特点做比较操作:String type compare to Integer type.,Avaya封装了这类型的比较操作。

通过跟踪Avaya的源码,最终找到了抛出异常的源代码,问题明朗化。

  根源出在string type的字段上,其中一个值是"    ",它在和整形比较时抛出了empty String异常,我们在测试中重现了这个异常,并发现字段的值是""," a "也会导致这个异常。

我们字段的值是通过substring Mainframe返回的一个长字符串来获得,位置一一固定,所以不会出现字段值为"" 或" a "情况, 可能出现"    ".情况即empty String。

解决方法两种:

1.在Mainframe端对empty 字段补字段指定长度的0;

2.在Dialog Design端对empty 字段补字段指定长度的0;(我们采用第二种方法)

在和PM后来的沟通过程中, PM证实客户新开通的某些业务,在DB2上的没立即生效,而此时如果用户提前访问,数据会是empty String;但这种情况很少在业务中发生。


Author:David

    Mail:xiang.okay@gmail.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值