SOAP Mock服务脚本报错:String.parseString()方法不存在问题排查
问题原因及解决办法
报错根源
Java标准库中的java.lang.String类不存在parseString()这个静态方法,这是触发报错的直接原因。
Integer、Float这类数值类型提供parseInt()、parseFloat()方法,是因为需要将字符串格式的数值转换成对应的数值类型;而从XmlHolder中通过holder["//节点名"]获取到的内容本身就是String类型,完全不需要额外的"解析"操作。
修正后的脚本
def holder = new com.eviware.soapui.support.XmlHolder( mockRequest.requestContent ) // get arguments def invoiceId = Integer.parseInt( holder["//invoiceId"] ) def header1 = holder["//header1"] def header2 = holder["//header2"] def invoiceNumber = holder["//invoiceNumber"] def invoiceOrder = Integer.parseInt( holder["//invoiceOrder"] ) def totalValue = Float.parseFloat( holder["//totalValue"] ) def categoryId = Integer.parseInt( holder["//categoryId"] ) def categoryName = holder["//categoryName"] // 注意:原代码中的invoiceDate和dueDate未定义,需补充赋值逻辑 requestContext.result = "${invoiceId} ${header1} ${invoiceNumber} ${invoiceOrder} ${invoiceDate} ${dueDate} ${totalValue} ${categoryId} ${categoryName}"
额外提示
原脚本最后一行的invoiceDate和dueDate变量没有定义,运行时会触发新的报错,需要补充从请求中提取这两个值的逻辑,或者定义默认值。
内容的提问来源于stack exchange,提问作者Konrad Krawczyk
相关产品推荐
相关产品推荐

