2016-07-29 26 views
0

Ich versuche, einen Java Modern Batch zu machen. Alles funktioniert regelmäßig: Der Job startet und endet, bis ich in der Methode "Initialize" von Schritt einen Aufruf "HttpURLConnection" einfüge. Mit dem HTTP-Aufruf bleibt die Ausführung blockiert und ich muss den Server jedes Mal neu starten.Wie funktioniert HttpURLConnection in Java Modern Batch

Dies ist der Code von HttpURLConnection:

String url = "http://mywebsite.com/api.xml"; 

URL obj = new URL(url); 
HttpURLConnection connection = (HttpURLConnection) obj.openConnection(); 

connection.setRequestMethod("GET"); 

int responseCode = connection.getResponseCode(); 
System.out.println("\nSending 'GET' request to URL : " + url); 
System.out.println("Response Code : " + responseCode); 

InputStreamReader isr = new InputStreamReader(connection.getInputStream()); 
BufferedReader in = new BufferedReader(isr); 
String inputLine; 
StringBuffer response = new StringBuffer(); 

try { 
    while ((inputLine = in.readLine()) != null) { 
     response.append(inputLine); 
    } 
} 
catch (Exception e) { 
    // TODO: handle exception 
} 
isr.close(); 
in.close();  
connection.disconnect(); 

String xml = response.toString(); 
+0

Sie sollten nicht versuchen, die Eingabe zu lesen, wenn der Antwortcode nicht erfolgreich ist. – EJP

Antwort

0

es sich lohnen, kann an dieser SO Gewinde (HttpURLConnection.getInputStream() blocks) suchen. Sie können versuchen, ein Lese-Timeout im Code zu setzen und zu sehen, ob das Ihnen hilft, aus dem "Block" herauszukommen.

+0

Leider hat der Vorschlag das Problem nicht gelöst. Danke trotzdem! – gvanzo

Verwandte Themen