Web Services 如何解决方法无签名:静态java.lang.String.parseString()适用于参数类型:(字符串)值:[测试]< /faultstring>

cld4siwp  于 2023-01-09  发布在  Java
关注(0)|答案(1)|浏览(153)

在SOAP模拟服务中,我希望根据请求中的值进行动态响应,因此我创建了脚本,但收到错误"无法使用脚本分派"; groovy.lang.MissingMethodException:无方法签名:静态java. lang. String. parseString()适用于参数类型:(字符串)值:[测试]
我的剧本是这样的

def holder = new com.eviware.soapui.support.XmlHolder( mockRequest.requestContent )
// get arguments 
def invoiceId = Integer.parseInt( holder["//invoiceId"] )
def header1 = String.parseString( holder["//header1"] )
def header2 = String.parseString( holder["//header2"] )
def invoiceNumber = String.parseString( holder["//invoiceNumber"] )
def invoiceOrder = Integer.parseInt( holder["//invoiceOrder"] )

def totalValue = Float.parseFloat( holder["//totalValue"] )
def categoryId = Integer.parseInt( holder["//categoryId"] )
def categoryName = String.parseString( holder["//categoryName"] )
requestContext.result =  invoiceId  header1 invoiceNumber invoiceOrder invoiceDate dueDate totalValue  categoryId categoryName

问题是字符串。parseString我不知道为什么每一个其他的参数它的确定有人能解释为什么我得到这个错误

v6ylcynt

v6ylcynt1#

JDK中没有String.parseString方法,您要做的事情如下:

def categoryName = holder["//categoryName"]

然而,我怀疑这可能是有问题的,因为XmlHolder是一个Map,get()返回一个Object,所以不知道它会返回什么,但是有一个方法返回一个String,这就是你要找的,所以你可以这样做:

def categoryName = holder.getNodeValue("//categoryName")

该方法似乎接受一个xpath表达式,并将XML节点的内容作为String返回。

相关问题