Bom dia, Pessoal sou novo por aqui e não sei se estou postando isso no local certo.
Estou com um problema em uma aplicação que estou desenv. para celular. Ela comunica com o banco de dados corretamente no caso estou usando o Postgre, ela busca os registros corretamente sendo byte a byte. Após realizar essa leitura no banco tenho que jogar esses campos lidos na tela do meu celular, já criei o banco na web, coloquei os arquivos (*.jsp).
Ao executar o projeto ele me retorna a mensagem final “Uncaught exception: java.lang.OutOfMemoryError (stack trace incomplete)”. Sinceramente não sei o que pode estar acontecendo abaixo está o código que me faz possivel essa execução.
public void startApp() {
obj_acessoWeb = new acessoWeb(this);
obj_acessoWeb.inicia_thread();
if (midletPaused) {
resumeMIDlet ();
} else {
initialize ();
startMIDlet ();
}
midletPaused = false;
}
import java.io.*;
import java.util.Vector;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
public class acessoWeb implements Runnable {
private Vector vetor_dados;
private HttpConnection obj_conexao_http;//possibilita buscar os dados com o vector
private String url;
private InputStream obj_inputstream;
private Aquario obj_aquario;
private Thread thread;
public acessoWeb(Aquario obj_aquario) {
this.obj_aquario = obj_aquario;
}
public void inicia_thread() {
System.out.println("Iniciando thread");
thread = new Thread(this);
thread.start();
System.out.println("thread iniciada");
}
public void run()
{
System.out.println("Iniciando public void run");
url = "http://localhost:8080/AquarioWeb-war/HoraAliTanque.jsp";
try
{
vetor_dados = new Vector(); //ira armazenar os dados para jogar na tela do celular
String [] dados;
obj_conexao_http = (HttpConnection) Connector.open(url);
if (obj_conexao_http.getResponseCode() == HttpConnection.HTTP_OK)
{
obj_inputstream = obj_conexao_http.openDataInputStream();
System.out.println("Http OK!");
int i=1, caracter_lido = obj_inputstream.read();
StringBuffer stringbuffer = new StringBuffer();
while (caracter_lido != '^')
{
[b] //lendo o cod.[/b]
while (caracter_lido != ','){
stringbuffer.append((char) caracter_lido);
caracter_lido = obj_inputstream.read();
}
dados = new String[3];
System.out.println("Código: " +stringbuffer.toString().trim());
dados[0] = stringbuffer.toString().trim();
stringbuffer.delete(0, stringbuffer.length());
caracter_lido = obj_inputstream.read();
[b] //lendo o nome do user[/b]
while (caracter_lido != ','){
stringbuffer.append((char) caracter_lido);
caracter_lido = obj_inputstream.read();
}
System.out.println("Nome usuario: " +stringbuffer.toString().trim());
dados[1] = stringbuffer.toString().trim();
stringbuffer.delete(0, stringbuffer.length());
caracter_lido = obj_inputstream.read();
[b]//lendo tanque[/b]
while (caracter_lido != '#'){
stringbuffer.append((char) caracter_lido);
caracter_lido = obj_inputstream.read();
}
System.out.println("Nome tanque: " +stringbuffer.toString().trim());
dados[2] = stringbuffer.toString().trim();
stringbuffer.delete(0, stringbuffer.length());
caracter_lido = obj_inputstream.read();
vetor_dados.addElement(dados);
}
obj_aquario.recebedadosTanque(vetor_dados);
obj_inputstream.close();
[b] /*obj_aquario chama o método recebedados Tanque la do .java Aquario (Classe principal) passando assim o vetor_dados como parametro
para que eu possa ta visualizando os dados que eu quero que ele list na tela do celular*/[/b]
}
}
catch(IOException io)
{
System.out.println("Erro de IOException= "+io);
}
catch(SecurityException se)
{
System.out.println("Erro de SecuryteException= "+se);
}
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------
public void recebedadosTanque(Vector vetor_recebe_dados)
{
this.vetor_recebe_dados = vetor_recebe_dados;
int tamanho = vetor_recebe_dados.size();
for (int i = 0;i < tamanho; i++)
{
[b] /*Vetor de dados convertendo para tipo string o vetor de dados o elemento da posicao 'i' que no caso é zero
para cada elemento ele tem todos os dados a serem armazenados*/[/b]
String[] dados = (String[]) vetor_recebe_dados.elementAt(i);//vetor de dados pega o elemento da posiçao I = 0
lista.append(dados[0]+"-"+dados[1]+"-"+dados[2]+"-"+dados[3], null);
}
}
Agradeço a atenção!
Glauciney