【发布时间】:2016-10-24 17:15:17
【问题描述】:
我对 Groovy 和 SoapUING 还很陌生。我希望有人可以帮助我找出并修复此错误。谢谢!
我正在尝试做的事情: 遍历表中的每个 db 行项并将其用作输入以发出 HTTPBuilder 请求(GET 或 POST),或者作为路径中的查询(加baseURL/path/hello)或通过参数(加baseURL/path?searchNode="hello")。 baseURL 类似于https://search-test-env.ser.com。
卡住的地方:当我尝试通过 HTTPBuilder 发布请求时。
错误: PKIX Path Building Failed
其他相关信息:
- 使用 ReadyAPI 运行脚本。代码在 Groovy 中。
- 最近将 httpbuilder jar 连同一些依赖项导入 ReadyAPI/lib 文件夹。在 httpbuilder 可用的依赖项中,ReadyAPI 已经很少,所以我只选择了缺少的那些。其他 jar 名称:
ojdbc6, ojdbc6_g, signpost-commonshttp4-1.2.1.1, ezmorph-1.0.6, json-lib-2.3-jdk15, xml-resolver-1.2, signpost-core-1.2.1.1, appengine-api-1.0-sdk-1.3.8, nekohtml-1.9.16, http-builder-0.7, http-builder-0.7-sources, http-builder-0.7-javadoc。 - 该服务适用于没有 groovy 的手动请求(baseURL/路径上的简单 GET),它也适用于按字符串或按参数查询。
- 证书已在密钥库中可用。尝试通过 cmd 使用 keytool(在 ReadyAPI/bin 文件夹中可用)命令,但收到 filenotfound 错误)。尝试导入 ReadyAPI\jre\lib\security。
代码:
def qryPrmRqstHTTPBldr( pBaseUrl, pPath, pQuery, pMethod ) {
def ret = null
def http = new HTTPBuilder()
def meth
if ( pMethod == 'GET') {
meth = Method.GET
}
else if ( pMethod == 'POST') {
meth = Method.POST
}
// perform a GET/POST request, expecting TEXT response
http.request(pBaseUrl, meth, ContentType.TEXT) { req ->
uri.path = pPath
uri.query = pQuery
/*
headers.'User-Agent' = 'Apache-HttpClient/4.5.1 (Java/1.8.0_66)'
headers.'Host' = 'xxx-xx-xxx.xxx.xxx'
headers.'Accept-Encoding' = 'gzip,deflate'
headers.'Connection' = 'Keep-Alive'
*/
log.info System.getProperty("java.runtime.version")
log.info System.getProperty("javax.net.ssl.trustStore")
log.info System.getProperty("javax.net.ssl.keyStore")
log.info System.getProperty("java.home")
log.info System.getProperty("java.class.path")
// response handler for a success response code
response.success = { resp, reader ->
println "response status: ${resp.statusLine}"
println 'Headers: -----------'
ret = reader.getText()
println 'Response data: -----'
println ret
println '--------------------'
}
}
return ret
}
运行此代码会引发 PKIX Path Building Failed 错误(没有可用的堆栈跟踪)和每个属性的内容:
System.getProperty("java.runtime.version") // 1.8.0_66-b17
System.getProperty("javax.net.ssl.trustStore") // null
System.getProperty("javax.net.ssl.keyStore") // null
System.getProperty("java.home") // c:\program files\smartbear\readyapi-1.6.0\jre
System.getProperty("java.class.path") // C:\Program Files\SmartBear\ReadyAPI-1.6.0\.install4j\i4jruntime.jar;......
【问题讨论】:
标签: groovy soapui httpbuilder pkix