2017-07-14 4 views
0

J'essaie d'obtenir le jeton d'accès de salesforce en utilisant l'extrait ci-dessous java (Version 1.7) mais je reçois erreur interne du serveur (Code d'erreur: 500) et l'ID d'erreur de force de vente 1366385420-22703 (1478489697).salesforce: Erreur ID: 1366385420-22703 (1478489697) -> Erreur interne du serveur 500

Mais le même code que je suis en train d'essayer en Java 1.8 fonctionne bien j'obtiens une réponse appropriée. Les fichiers JAR que j'utilise sont "httpclient-4.3.3.jar, httpcore-4.3.2.jar".

import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.util.ArrayList; 
import java.util.List; 

import javax.net.ssl.SSLContext; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpHost; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.config.RequestConfig; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.conn.ssl.SSLConnectionSocketFactory; 
import org.apache.http.conn.ssl.SSLContexts; 
import org.apache.http.impl.client.CloseableHttpClient; 
import org.apache.http.impl.client.HttpClientBuilder; 
import org.apache.http.impl.client.HttpClients; 
import org.apache.http.impl.conn.DefaultProxyRoutePlanner; 
import org.apache.http.message.BasicNameValuePair; 

public class ChatterHelper 
{ 

    public static void main(String[] args) { 


     postOnChatterGroup(); 
    } 


    public static void postOnChatterGroup() 
    { 
     HttpHost proxy; 
     DefaultProxyRoutePlanner routePlanner; 
     RequestConfig requestConfig; 
     CloseableHttpClient httpClient = null; 
     InputStream is; 


     try 
     { 
      String clientId ="3MVG9**********************************************"; 
      String clientSecret ="*****************"; 
      String environment = "https://*****.salesforce.com"; 
      String authURL = "/services/oauth2/token"; 
      String userName = "**********************************"; 
      String pwd = "*******"; 
      StringBuffer sbf = new StringBuffer(); 
      String baseUrl = environment+authURL; 
      System.setProperty("https.protocols", "TLSv1.1,SSLv3"); 
      proxy = new HttpHost("***.***.com", 80); 
      routePlanner = new DefaultProxyRoutePlanner(proxy); 
      requestConfig = RequestConfig.custom().setConnectTimeout(20000) 
        .setConnectionRequestTimeout(10000).setSocketTimeout(20000) 
        .build(); 
      httpClient = HttpClientBuilder.create().setDefaultRequestConfig(
        requestConfig).setRoutePlanner(routePlanner).build(); 

      HttpPost oauthPost = new HttpPost(baseUrl); 
      oauthPost.setConfig(requestConfig); 
      List<BasicNameValuePair> parametersBody = new ArrayList<BasicNameValuePair>(); 
      // keep this as it is 
      parametersBody.add(new BasicNameValuePair("grant_type", "password")); 
      parametersBody.add(new BasicNameValuePair("username", userName)); 
      parametersBody.add(new BasicNameValuePair("password", pwd)); 
      parametersBody.add(new BasicNameValuePair("client_id", clientId)); 
      parametersBody.add(new BasicNameValuePair("client_secret", clientSecret)); 
      oauthPost.setEntity(new UrlEncodedFormEntity(parametersBody)); 
      // Execute the request. 
      HttpResponse response = httpClient.execute(oauthPost); 
      HttpEntity entity = response.getEntity(); 
      int code = response.getStatusLine().getStatusCode(); 
      System.out.println( ", Result Code >> " + code); 
      if (entity != null) 
      { 
       BufferedReader rd = new BufferedReader(new InputStreamReader(
         entity.getContent(), "UTF-8")); 
       String line = ""; 
       while ((line = rd.readLine()) != null) 
       { 
        sbf.append(line); 
        System.out.println(line); 
       } 
      } 


     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 
} 

est inférieure à la sortie de l'extrait: Code de résultat >> 500

, Result Code >> 500 
 

 

 

 

 

 

 
<html> 
 
<head><title>An internal server error has occurred</title></head> 
 
<body> 
 

 

 
<div style="display:none;" id="errorTitle">An internal server error has occurred</div> 
 
<div style="display:none;" id="errorDesc">An error has occurred while processing your request. The salesforce.com support team has been notified of the problem. If you believe you have additional information that may be of help in reproducing or correcting the error, please contact <a href="https://help.salesforce.com/apex/hthome">Salesforce Support</a>. Please indicate the URL of the page you were requesting, any error id shown on this page as well as any other related information. We apologize for the inconvenience. <br/><br/>Thank you again for your patience and assistance. And thanks for using salesforce.com!</div> 
 
<table cellspacing=10> 
 
<tr><td><span style="font-weight: bold; font-size: 12pt;">An internal server error has occurred</span></td></tr> 
 
<tr><td> 
 
An error has occurred while processing your request. The salesforce.com support team has been notified of the problem. If you believe you have additional information that may be of help in reproducing or correcting the error, please contact <a href="https://help.salesforce.com/apex/hthome">Salesforce Support</a>. Please indicate the URL of the page you were requesting, any error id shown on this page as well as any other related information. We apologize for the inconvenience. <br/><br/>Thank you again for your patience and assistance. And thanks for using salesforce.com! 
 
<br><br> 
 
Error ID: 1099658790-8511 (1478489697) 
 
</td> 
 
</tr> 
 
<tr><td> 
 
<br clear="all"><br><br> 
 

 

 
</td></tr> 
 
</table> 
 

 
</td></tr> 
 
</table> 
 

 

 

 
</body> 
 
</html>

Répondre

0

Où est ce code en cours d'exécution? Je crois que TLS 1.1 n'est pas activé par défaut dans Java 1.7. Vous devrez l'activer en premier.

+0

J'ai utilisé 'System.setProperty (" https.protocols "," TLSv1.1, SSLv3 ");' pour activer le TLS 1.1, est-ce correct? – Muthukumar

+0

Malheureusement, je ne suis pas un expert Java, donc je ne peux vraiment pas le dire. Vous devrez peut-être poser cette question ailleurs. –