如何搜索文件夹,避免出现错误“ BaseRef是抽象类型,无法实例化”?

时间:2018-10-09 15:15:50

标签: xml soap netsuite

向NetSuite Web服务发出以下请求:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope ...>
    <soap:Header>
        <platformMsgs:tokenPassport ...>
            ...
        </platformMsgs:tokenPassport>
    </soap:Header>
    <soap:Body>
        <platformMsgs:get>
            <platformMsgs:search>
                <searchRecord xsi:type="FolderSearch"/>
            </platformMsgs:search>
        </platformMsgs:get>
    </soap:Body>
</soap:Envelope>

返回带有故障代码的XML响应: soapenv:Server.userException 故障字符串

  

rg.xml.sax.SAXException:{urn:core_2017_2.platform.webservices.netsuite.com} BaseRef是一种抽象类型,无法实例化

此错误消息是什么意思?那么该请求的正确xml结构是什么?

1 个答案:

答案 0 :(得分:0)

似乎我在“获取”操作中包含了“搜索”操作元素。通过将请求xml更改为:

,我能够获得期望的响应。

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope ...>
    <soap:Header>
        <platformMsgs:tokenPassport ...>
          ...
        </platformMsgs:tokenPassport>
    </soap:Header>
    <soap:Body>
        <platformMsgs:search>
            <platformMsgs:search xsi:type="FolderSearch" xmlns="urn:filecabinet_2017_2.documents.webservices.netsuite.com" />
        </platformMsgs:search>
    </soap:Body>
</soap:Envelope>

不确定这是否是xml的最佳语法,但是它可以工作。仍然不确定“ BaseRef”指的是什么。