SoapUI访问ws当入参数为xml格式时的注意事项

bangping 贡献于2014-08-02

作者 Lenovo  创建于2011-09-13 03:13:00   修改者Lenovo  修改于2013-08-17 00:48:00字数1874

文档摘要:当SoapUI访问一个webservice时,对于某些webserive服务,如果webserive的输入参数要求是xml格式,如果xml格式输入不正确,会报“Unmarshalling Error: Illegal processing instruction target ("xml"); xml (case insensitive) is reserved by the specs. at [row,col {unknown-source}]: [9,14]”的错误信息。
关键词:

SoapUI访问ws当入参数为xml格式时的注意事项 问题描述: 当SoapUI访问一个webservice时,对于某些webserive服务,如果webserive的输入参数要求是xml格式,如果xml格式输入不正确,会报“Unmarshalling Error: Illegal processing instruction target ("xml"); xml (case insensitive) is reserved by the specs. at [row,col {unknown-source}]: [9,14]”的错误信息。 客户现场案例描述: 神东煤炭ESB支持时,客户这边提供一个发送短信的webservice,其中一个输入参数要求是xml格式,如下图所示: Ø 错误1:当将xml格式的输入参数(即内容)设置为: 13600000000 This is a test sms ! 时,进行webservice调用,报错如下: Unmarshalling Error: unexpected element (uri:"", local:"SmsPush"). Expected elements are (none) 如下图所示: Ø 错误2:添加标头信息后,当将xml格式的输入参数(即内容)设置为: 13600000000 This is a test sms ! 时,进行webservice调用,报错如下: Unmarshalling Error: Illegal processing instruction target ("xml"); xml (case insensitive) is reserved by the specs.at [row,col {unknown-source}]: [9,15] 如下图所示: Ø 正确xml参数输入格式: 将xml格式的输入参数(即内容)设置为: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <SmsPush> <phone>13679122863</phone> <content>this is test </content> <sendTime/> <transactionId/> </SmsPush> 如下图所示: 这样再进行webservice调用,就可以调用成功了。如下图所示: 解释: 对于问题1所出现的错误,是因为输入参数要求要xml格式,而所给出的参数没有添加,所以其形式并不满足xml标准,因此不能够成功调用成功。 对于问题2所出现的错误,虽然输入参数已经符合xml的标准格式,但是由于转义符号的原因,所以出现了这样的错误。 因此,在输入xml格式的参数时,首先需要添加(注意:这一行必须出现在第一行,并且需要顶格,前面没有任何空格或其他字符),使得输入参数符合xml标准;其次对于转义字符,需要进行改变。 在这里,列举出常用的一些转义字符: 特殊符号 代码 < <  > >  " " & & 版权标志 ©  商标标志 ® 空格   . • ps: 如何利用EOS调试快速替换转义字符? 在EOS中设置一个变量String_xml,将它的value值设置为: 15991264030 This is a test sms ! 如下图所示: 然后启动调试,设置断点后,查看该变量,能够从value值中看到此xml字符串的转义字符已经经过了转换。如下图所示:

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 2 人已下载

下载文档