Olá pessoal,
Estou tentando enviar um arquivo do celular para uma área ftp.
Mostra a seguinte erro: cannot access java.net.InetAddress
file java\net\InetAddress.class not found
ftp.connect(“ftp.servidorftp.terra.com.br” );
Segue código:
FTPClient ftp = new FTPClient();
try {
ftp.connect(“ftp.servidorftp.terra.com.br” );
ftp.login(“111”, “11111111”);
InputStream arqEnviar = (InputStream) Connector.open(“File:///C:/Dados.txt”);
if (ftp.storeFile("/minha_pasta/Dados.txt", arqEnviar)) {
System.out.println("Arquivo armazenado com sucesso!");
} else {
System.out.println("Erro ao armazenar o arquivo.");
}
} catch (IOException ex) {
ex.printStackTrace();
}
Pela mensagem parece que ele não está localizando o provedor ftp: "ftp.servidorftp.terra.com.br"
Isto é um exemplo, ou você digitou isso mesmo?
[quote=edwagner]Pela mensagem parece que ele não está localizando o provedor ftp: "ftp.servidorftp.terra.com.br"
Isto é um exemplo, ou você digitou isso mesmo?
[/quote]
edwagner, é apenas um exemplo.
Na aplicação desktop consigo acessar e enviar o arquivo normalmente.
Em J2ME mostra erro: cannot access java.net.InetAddress
file java\net\InetAddress.class not found
ftp.connect(“ftp.servidorftp.terra.com.br” )
[quote=dev-ailson]Em J2ME mostra erro: cannot access java.net.InetAddress
file java\net\InetAddress.class not found
ftp.connect(“ftp.servidorftp.terra.com.br” )
[/quote]
edwagner,
Acho que não está conseguindo localizar a classe java/net/InetAddress.class.
Realmente não existe a InetAddress.class na pasta java/net. Existe a extensão .java (java/net/InetAddress.java).
Em J2ME não tem FTPClient()
edwagner,
Em J2me teria como fazer isso?
Sim você usa a classe javax.microedition.io.SocketConnection ela funciona quase do mesmo modo. Mas não tenho como te mostrar agora, como diz o boone: “vai ter que fazer o dever de casa.” Qualquer novidade, posta aí pra gente.
Um abraço,
Edwagner
Obrigado pela citação…hahaha…
É isto mesmo. O edwagner já deu o caminho. Eu complemento dizendo para vc estudar o protocolo FTP (RFC) e montar teu próprio client.
[quote=edwagner]
Sim você usa a classe javax.microedition.io.SocketConnection ela funciona quase do mesmo modo. Mas não tenho como te mostrar agora, como diz o boone: “vai ter que fazer o dever de casa.” Qualquer novidade, posta aí pra gente. [/quote]
Olá pessoal, estou fazendo meu dever de casa.
Consegui implementar a classe SocketConnection, mas estou com dois probleminhas:
1 - O servidor “FTP” tem username e password.
- Como informar esses parâmetros para o servidor?
2 - Quando tento me conectar o servidor “FTP” ele retorna: “Exception: Connection timed out: connect”. Se conecto em outro endereço funciona corretamente.
- Esse erro é por causa do parâmetro “username e password” não informado ao servidor?
Aguardo e grato pelos comentários de todos.
private void conectar() {
append("\nCriando Thread...");
new Thread(new Runnable() {
public void run() {
append("\nConectando...");
String url = "http://ftp.meudisco.terra.com.br";
HttpConnection http = null;
InputStream inStream = null;
try {
http = (HttpConnection) Connector.open(url, Connector.READ_WRITE, true);
append("\nConexão criada!");
http.setRequestMethod(HttpConnection.GET);
append("\n"+url);
http.setRequestProperty("Connection", "close");
append("\nPegando resposta...");
int rc = http.getResponseCode();
append("\nResposta: " + rc);
if (rc == HttpConnection.HTTP_OK) {
inStream = http.openInputStream();
append("\nInputStream aberta");
byte[] data = new byte[512];
int count;
ByteArrayOutputStream returnData = new ByteArrayOutputStream();
while ((count = inStream.read(data)) > -1)
if (count > 0)
returnData.write(data, 0, count);
String respStr = new String(returnData.toByteArray());
returnData.close();
append("\nRESPOSTA: " + respStr);
} else
append("\nErro " + rc + " na resposta do servidor: " + http.getResponseMessage() + ".");
} catch (Exception e) {
append("\nException: " + e.getMessage());
}
try { inStream.close(); } catch (Exception e) {}
try { http.close(); } catch (Exception e) {}
append("\nFinalizado!");
}
}).start();
}
Nossa, vc está bem perdido hein…
Vamos lá:
- Vc não tem que implementar SocketConnection coisa nenhuma e sim fazer assim:
StreamConnection connection = (StreamConnection) Connector.open(“socket://ftp.lalala.com:21”)
O user e password vc passa normalmente uma vez que conectar, por isto eu te disse para estudar o protocolo FTP, mas vc não fez isto !!!
- O código q vc postou não tem nada a ver…vc tá tentando falar com um servidor FTP usando HTTP, é como fazer um alemão conversar com um brasileiro !
Em resumo:
Volte ao item 1 que te mostrei e estude o protocolo FTP. Meu, só não vai funcionar se vc continuar com a preguiça e quiser tudo mastigado
[quote=boone]
Em resumo:
Volte ao item 1 que te mostrei e estude o protocolo FTP. Meu, só não vai funcionar se vc continuar com a preguiça e quiser tudo mastigado[/quote]
boone, você é mesmo uma figura!
Vou seguir seus conselhos e estudar o protocolo FTP.
Valeu, qualquer dúvida posto novamente.