使用SOAPUI调用NetSuite 2019.1 SOAP API遇账户专属域名错误求助
解决SoapUI调用NetSuite 2019.1 SOAP API的域名错误问题
嘿,这个问题我之前也碰到过!咱们先理清楚为啥会这样:NetSuite从2019.1版本开始,强制要求SOAP Web服务使用账户专属的域名,不能再用sb1这种通用的环境域名了。你的代码能正常跑,大概率是因为代码里已经自动处理了获取正确域名的逻辑——比如调用了getDataCenterUrls操作来拿到专属地址,或者你在代码配置里已经填对了专属域名,但SoapUI里直接用了旧的通用WSDL地址,所以就触发这个错误了。
下面给你一步步的解决方法:
第一步:拿到你的账户专属域名
有两个简单的方式获取:
- 通过NetSuite后台查看
登录你的NetSuite账户,依次点Setup > Company > Company Information,切换到Company URLs标签页,里面就能找到对应SOAP服务的专属域名(格式大概是https://<你的账户ID>-<数据中心标识>.app.netsuite.com)。 - 用SOAP调用getDataCenterUrls获取
你可以先在SoapUI里建一个临时请求,调用getDataCenterUrls操作(这个操作可以先用通用的https://webservices.netsuite.com来调用),请求示例如下:
发送这个请求后,就能拿到你的账户对应的专属域名了。<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:messages_2019_1.platform.webservices.netsuite.com"> <soapenv:Header/> <soapenv:Body> <urn:getDataCenterUrls> <urn:account>你的NetSuite账户ID(比如5450407)</urn:account> </urn:getDataCenterUrls> </soapenv:Body> </soapenv:Envelope>
第二步:替换SoapUI里的WSDL地址
把原来的WSDL地址https://5450407-sb1.app.netsuite.com/wsdl/v2019_1_0/netsuite.wsdl里的5450407-sb1替换成你刚拿到的专属域名前缀,比如如果返回的是5450407-sbx2,就改成https://5450407-sbx2.app.netsuite.com/wsdl/v2019_1_0/netsuite.wsdl,然后重新在SoapUI里加载这个WSDL就可以了。
额外提醒
- 记得在SoapUI的请求头里,
account参数要和你的专属域名对应上,别出现域名和账户不匹配的情况。 - 如果是沙箱环境,专属域名的后缀可能是
sbx开头的,别和生产环境的域名搞混了哦。
内容的提问来源于stack exchange,提问作者ankit
相关产品推荐
相关产品推荐

