common.apex.runtime.impl.ExecutionException:来自服务器apex的文件意外结束

时间:2017-04-21 23:52:00

标签: java web-services rest salesforce apex

我试图在顶级Salesforce中拨打休息服务,但是当我从Salesforce打电话时,它已经运行良好,已经尝试使用ARC Chrome,以及我制作的Java程序并且工作正常。 我把最大超时时间给我这个错误。

  

common.apex.runtime.impl.ExecutionException:来自服务器apex的文件意外结束

当我在没有Timeout的情况下更改它时,请给我:

  

发生了意外错误:读取超时

所以我真的不知道发生了什么我使用相同的逻辑脚本来调用另一个Rest Service并且它工作正常。

这是我的鳕鱼到现在为止:

@future (callout=true)
    public static void SendNitrosOautIncluded(Decimal cantidadNitros, String id_cuenta) {

        HttpRequest req = new HttpRequest();
        HttpResponse res = new HttpResponse();
        Http http = new Http();
        try {
            map<String, Endpoint__c> endPoints = Endpoint__c.getall();
            Endpoint__c endPoint = endPoints.get('PtxAddNitros');
            String endPointPtx= (String)endPoint.get('Endpoint__c');
            System.debug(endPointPtx+id_cuenta);
            //req.setTimeout(60000);
            req.setEndpoint(endPointPtx+id_cuenta);
            req.setMethod('POST');
            req.setHeader('Content-Type', 'application/json; charset=utf-8');                  
            JSONGenerator gen = JSON.createGenerator(true); 
            gen.writeStartObject();
            gen.writeNumberField('credits', cantidadNitros);        
            //MANAGE RESPONSE
            String objSended= gen.getAsString();
            System.debug(objSended);
            req.setBody(objSended);            
            res = http.send(req);            
            String resp=res.getBody();            
            System.debug(resp);
            System.debug(res.toString());
            System.debug('STATUS:'+res.getStatus());
            System.debug('STATUS_CODE:'+res.getStatusCode());
           /* Map<String, Object> m =(Map<String, Object>)JSON.deserializeUntyped(resp);
            System.debug(m);
            //CONTROL DE ERRORES
            String data=(String)m.get('data');  
            String status=(String)m.get('status');  
            if(status.equals('200')){
                System.debug('CORRECTO');
            }*/




        } catch(System.CalloutException e) {
            facturaDeudor.errorMessage(e);
        }
    }

1 个答案:

答案 0 :(得分:1)

问题是关于防火墙,将URL的所有de地址放在服务器的白名单中以进行标注,并且它可以正常工作。 help.salesforce.com/articleView?id=000003652&type=1