Problemas ao conectar : "TCP open"

Olá pessoal.
Tenho uma aplicação que conecta a uma página na net. Tem dois TextFields, um você digita o nome de um aluno e o outro o endereço da servlet. Uso o Tomcat, na porta 6565, e quando digito [http://127.0.0.1:6565/servlet/aplicacaoBD] dá tudo OK, ou seja, é enviado o parametro de busca no endereço tal, resultando em [http://127.0.0.1:6565/servlet/aplicacaoBD?user=parametro]

Mas na verdade, a máquina que trabalho tá no ar(quando eu ligo o Tomcat claro), o endereço é [http://fanat_labinf.uern.br:6565]
Quando uso esse endereço dá o seguinte erro:

javax.microedition.io.ConnectionNotFoundException: TCP open
	at com.sun.midp.io.j2me.socket.Protocol.connect(+99)
	at com.sun.midp.io.ConnectionBaseAdapter.openPrim(+52)
	at com.sun.midp.io.j2me.socket.Protocol.openPrim(+108)
	at com.sun.midp.io.ConnectionBaseAdapter.openPrim(+14)
	at com.sun.midp.io.ConnectionBaseAdapter.openPrim(+8)
	at com.sun.midp.io.j2me.http.Protocol.connect(+73)
	at com.sun.midp.io.j2me.http.Protocol.streamConnect(+57)
	at com.sun.midp.io.j2me.http.Protocol.startRequest(+12)
	at com.sun.midp.io.j2me.http.Protocol.sendRequest(+38)
	at com.sun.midp.io.j2me.http.Protocol.sendRequest(+6)
	at com.sun.midp.io.j2me.http.Protocol.getResponseCode(+8)
	at JConectaBD.run(+164)

Obrigado!

Wellington

Ocorre um erro com o servidor, o que tenho que fazer? Como usar sockets, se é que terei que usar? A aplicação tem de executar em MIDP 1.0 e CLDC 1.0. Que significa esse erro?

Ah, esse endereço funciona também na porta 80, que é o endereço normal da faculdade, eles liberaram a porta 6565 para mim. Será que esse é o problema? Como tá executando normal em localhost, se eu instalar num celular ele vai conectar normalmente a fanat_labinf.uern.br:6565 ?

Wellington

Sem o código que está gerando essa exceção fica difícil dizer qual é o problema.

O trecho de código do aplicativo J2ME:

	public void run()
	{
		OutputStream saida = null;		
		InputStream is = null;
        HttpConnection con = null;
        
        String parametro = tParametro.getString();

        try 
        {
            String url = tUrl.getString();
            
            url = url+"?"+"user="+parametro;
            
            if (!url.startsWith("http://") && !url.startsWith("https://"))
			{
                url = "http://" + url;
            }
            
            con = (HttpConnection) Connector.open(url);
           
            con.setRequestMethod(HttpConnection.GET);
            
                      
		               
        }catch(Exception ex)
        {	
        	Alert alert = new Alert("Endereço Inválido",
                        "O endereço fornecido é inválido\n" +
                        "Corrija-o e tente novamente.", null,
                        AlertType.ERROR);
            alert.setTimeout(Alert.FOREVER);
            dTela.setCurrent(alert, fUrl);
            return;
        }
        

	   try 
        {
        	if (con.getResponseCode() == HttpConnection.HTTP_OK) 
            {
                is = con.openInputStream();
                final int MAX_LENGTH = 1024;
                byte[] buf = new byte[MAX_LENGTH];
                int total = 0;
                while (total < MAX_LENGTH) {
                    int cont = is.read(buf, total, MAX_LENGTH - total);
                    if (cont < 0)
                    {
                        break;
                    }
                    total += cont;
                }
                is.close();
                String respondendo = new String(buf, 0, total);
                sResultado.setText(respondendo);
            } else
             {
                sResultado.setText("Falha do tipo " + con.getResponseCode() +
                                "\n" + con.getResponseMessage());
             }
            
             for (int i = 0; ; i++)
             {
                String key = con.getHeaderFieldKey(i);
                String valor = con.getHeaderField(i);
                if (key == null)
                {
                   break;
                }
                
            }
            con.close();
            dTela.setCurrent(fResultado);
        } catch (IOException ex)
        {   ex.printStackTrace();
            Alert alert = new Alert("Erro de E/S",
                        "Um erro ocorreu durante a comunicação com o servidor.",
                        null, AlertType.ERROR);
            alert.setTimeout(Alert.FOREVER);
            dTela.setCurrent(alert, fUrl);
            return;
        
        } finally
          {
 		   try
 		   {
            	if (is != null)
            	{
                 	is.close();
                    is = null;
                }
           } catch (IOException ex1) {}
            try
            {
             	if (con != null)
             	{
                    con.close();
                    con = null;
                }
            } catch (IOException ex1) {}
           }
	}

O código do servlet:

import java.io.*;
import java.text.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class JServlet extends HttpServlet{
	
	private Connection connect;//um objeto que gerencia a conexão entre o programa Java e o BD.Fornece suporte para executar instruções SQL
	private Statement statement;//seu objeto submeterá a consulta ao BD
	ResultSet res = null;
	
	public void init( ServletConfig config) throws ServletException{
			
		try{
		
		//"url" especifica o BD Livro ao qual o programa se conecta
		String url = "jdbc:mysql://localhost/aluno";
		System.setProperty( "jdbc.drivers", "com.mysql.jdbc.Driver") ; 
		 
		 //O método getConnection da classe DriverManager tenta uma conexão com o BD especificado pela "url"
		 connect = DriverManager.getConnection( url );
         statement = connect.createStatement();
	}	  
	catch ( Exception ex ) {
      
         System.out.println(ex);
         
      } 
}
		
	
		public ResultSet Consultar(String consultaNome){
		//O objeto de ResultSet é retornado contendo o resultado da consulta,quando a consulta é realizada
		ResultSet rs = null;
		String query = "SELECT * FROM aluno " +
                           "WHERE nome_aluno LIKE '" +
                           consultaNome + "%'";
       try{
           	   //"executeQuery" retorna um objeto que implementa ResultSet e contém os resultados da consulta
           	   rs = statement.executeQuery( query );
           	}
       catch ( Exception ex ) {
            	System.out.println(ex);
         	  }
				
			return rs;
		}
		
	
	
	protected void doGet( HttpServletRequest request,
		HttpServletResponse response )
			throws ServletException, IOException
	{
	
			response.setContentType( "text/plain" );
			
			PrintWriter out = response.getWriter();
			
			String valor = request.getParameter("user");
			
			out.println("Obrigado!");
			
			out.println("Você está procurando por: "+valor);
			
			res = Consultar(valor);
			
						
			out.println("Resultado(s) da consulta:");
			
		try{
			
			while(res.next()){
				
				out.println("Aluno: " + res.getString(2));
				out.println();
				out.println("Período: " + res.getString(3));
				out.println();
				
			}
			
			res.close();
			out.close();
			
		}catch(Exception ex){}
		
		}
}

Como disse, tudo funciona bem, mas quando mudo de servidor…acho que é porque minha máquina não tem um domínio, o servidor “direciona” o site para minha máquina, na porta 6565. Ajudem-me!!

Obrigado Tyler.

Wellington