2017-07-14 2 views
0

Ich versuche, Zugriffstoken von salesforce unter Verwendung von Java-Schnipsel (Version 1.7) zu erhalten, erhalte aber einen internen Serverfehler (Fehlercode: 500) und die Außendienst-Fehler-ID wie 1366385420-22703 (1478489697).salesforce: Fehler-ID: 1366385420-22703 (1478489697) -> Interner Serverfehler 500

Aber den gleichen Code versuche ich in Java 1.8 funktioniert es gut ist eine richtige Antwort bekommen.

Die Jars, die ich verwende, ist "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(); 
     } 
    } 
} 

Unten finden Sie die Ausgabe aus dem Code-Schnipsel: Ergebniscode >> 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>

Antwort

0

Wo ist dieser Code ausgeführt wird? Ich glaube, dass TLS 1.1 in Java 1.7 nicht standardmäßig aktiviert ist. Sie müssen es zuerst aktivieren.

+0

Ich habe 'System.setProperty ("https.protocols", "TLSv1.1, SSLv3") verwendet; 'um das TLS 1.1 zu aktivieren, ist das korrekt? – Muthukumar

+0

Leider bin ich kein Java Experte, also kann ich nicht wirklich sagen. Möglicherweise müssen Sie diese Frage woanders stellen. –

Verwandte Themen