Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 获取错误“;找不到元素名称的Apex类型;在合作伙伴wsdl中_Xml_Soap_Wsdl_Salesforce_Apex - Fatal编程技术网

Xml 获取错误“;找不到元素名称的Apex类型;在合作伙伴wsdl中

Xml 获取错误“;找不到元素名称的Apex类型;在合作伙伴wsdl中,xml,soap,wsdl,salesforce,apex,Xml,Soap,Wsdl,Salesforce,Apex,我是SOAPWeb服务新手。我想同步两个Salesforce实例。为此,我使用了合作伙伴WSDL。我已将此WSDL安装到我的实例中,并创建了一个自定义类: public with sharing class ConnectionManager { private String uName = 'xxx'; private String Password = 'xxx'; private partnerSoapSforceCom.Soap connection{get;set;} public C

我是SOAPWeb服务新手。我想同步两个Salesforce实例。为此,我使用了合作伙伴WSDL。我已将此WSDL安装到我的实例中,并创建了一个自定义类:

public with sharing class ConnectionManager {
private String uName = 'xxx';
private String Password = 'xxx';
private partnerSoapSforceCom.Soap connection{get;set;}
public ConnectionManager() {
    connection = new partnerSoapSforceCom.Soap();
    partnerSoapSforceCom.LoginResult status = connection.login(uName, Password);
    system.debug('status: '+status);

    connection.endpoint_x = status.serverUrl;
    connection.SessionHeader = new partnerSoapSforceCom.SessionHeader_element();
    connection.SessionHeader.sessionId = status.sessionId;
    system.debug('connection.outputHttpHeaders_x: '+connection.outputHttpHeaders_x);

    //connection.inputHttpHeaders_x.put('Cookie',connection.outputHttpHeaders_x.get('Set-Cookie'));
    system.debug('qr: '+connection.query('SELECT Id, Name FROM Account where Name=\'test\''));
}}
但这给了我一个例外:

System.callout异常:Web服务调用失败:无法分析 呼叫响应。未找到元素名称的Apex类型

Class.partnerSoapSforceCom.Soap.query:第2048行第1列 类.连接管理器:第16行第1列

它正在登录salesforce,但在“connection.query()”方法中给了我错误

我签入调试日志并得到以下响应xml:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:partner.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sf="urn:sobject.partner.soap.sforce.com">
    <soapenv:Header>
        <LimitInfoHeader>
            <limitInfo>
                <current>1</current>
                <limit>5000</limit>
                <type>API REQUESTS</type>
            </limitInfo>
        </LimitInfoHeader>
    </soapenv:Header>
    <soapenv:Body>
        <queryResponse>
            <result xsi:type="QueryResult">
                <done>true</done>
                <queryLocator xsi:nil="true"/>
                <records xsi:type="sf:sObject">
                    <sf:type>Account</sf:type>
                    <sf:Id>0019000000lhRWKAA2</sf:Id>
                    <sf:Id>0019000000lhRWKAA2</sf:Id>
                    <sf:Name>test</sf:Name>
                </records>
                <size>1</size>
            </result>
        </queryResponse>
    </soapenv:Body>
</soapenv:Envelope>

1.
5000
API请求
真的
账户
001900000LHRWKAA2
001900000LHRWKAA2
测试
1.

请帮帮我。提前感谢。

听起来wsdl2apex没有成功创建一个Apex类来调用另一个组织的合作伙伴WSDL

企业和合作伙伴API旨在在Salesforce之外使用,而不是将两个Salesforce组织集成在一起。它们通常被Java、.NET、PHP、Ruby等语言使用

您最好使用在两个组织之间共享数据