Tenho uma aplicação desktop com swing que fica requisitando uma url enviando dados por método post e retornando informações usando HttpClient 4.1, pelo console do java esta parando ou congelando em na linha13 que é a última msg que sai no console ai para no httpclient.execute, o mais imprecionante é que esse erro só acontece num cliente meu no MT, aqui na empresa e demais clientes que temos a aplicação não trava de forma nenhuma, já não sei mais o que tentar para resolver isso se alguem tiver alguma ideia por favor me ajude.
Os clientes possuem os mais variados ambientes… nem sempre uma solução roda perfeitamente em 100% deles, pode ter alguma coisa bloqueando la(windows, anti-vírus,provedor de internet,…),
acho que deve ter algum detalhe que deve estar lhe escapando…
Obs: sem informações mais detalhadas fica dificil de ajudar…
Segue os arquivos .java e o link com todo o projeto no netbeans que fiz para poder testar esta no link www.menegaro.com/ErroMT.rar
Se alguém puder me ajudar eu já reinstalei o java na maquina do cliente, já adicionei o java no firewall do windows 7 dele, já tentei um monte de coisas e nada.
Pessoal muito obrigado os que responderão, acho que consegui resolver o problemas definindo o timeout, mas minha duvida agora é no tempo para estabelecer a conexão e o tempo para ficar aguardando a resposta, esta definido 2 segundos para aguardar a conexão e 5 segundos para aguardar o retorno, tem como esses valores serem menores? qual a conseqüência se diminuir?
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.client.ResponseHandler;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
public class ClientConnectionRelease {
public String xmlTabPeds(String idSangria) {
HttpParams httpParameters = new BasicHttpParams();
// Definir o tempo limite em milissegundos até que uma conexão é estabelecida.
int timeoutConnection = 2000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
// Definir o limite do soquete padrão (SO_TIMEOUT)
// em milissegundos, que é o tempo limite para espera de dados.
int timeoutSocket = 5000;
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
DefaultHttpClient httpclient = new DefaultHttpClient(httpParameters);
String responseBody = null;
try {
HttpPost httpost = new HttpPost("http://www.cliksys.com.br");
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("acao", "carrega"));
nvps.add(new BasicNameValuePair("id_sangria", idSangria));
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.ISO_8859_1));
ResponseHandler<String> responseHandler = new BasicResponseHandler();
responseBody = httpclient.execute(httpost, responseHandler);
}
catch (UnsupportedEncodingException ex) {
System.out.println("erro: "+ex.getMessage());
}
catch (IOException ex) {
System.out.println("Erro IOException: "+ex.getMessage());
}
catch(Exception ex){
System.out.println("Erro Exception: "+ex.getMessage());
}
finally {
httpclient.getConnectionManager().shutdown();
}
return responseBody;
}
}