Será que alguem poderia me ajudar com esse problema ?
Obrigado pela atenção
PROBLEMA:
Tenho uma classe java que é utilizada por uma servlet para acessar um arquivo no computador do cliente.
[color=red]ex:
File FIL1 = new File (origem);
if ( !FIL1.exists() )
{
enviar mensagem de erro
}
origem contém o path e o nome do arquivo,
ex:
c:\teste\arquivo.txt ou c:/teste/arquivo.txt[/color]
DÚVIDA:
Porque não consigo encontrar o arquivo ? O servidor não pode acessar um arquivo no cliente ? Existe outra forma de encontrar e ler o arquivo no servidor ? Quando utilizo o JBOSS funciona, mas não funciona no servidor, existe alguma razão ? Alguem poderia me ajudar com essas dúvidas ?
Você não pode acessar um arquivo no cliente com um servlet. Se há uma forma, vc provavelmente terá q usar algum protocolo maluco pra acessar via network a máquina onde está o arquivo, além de ter permições para isso. Se isso existe em java, desconheço e nunca vi (e nem vejo) razões para tal.
Pense comigo, o seu JBoss ou servlet conteiner está no servidor. É uma aplicação java que está rodando normalmente em uma máquina. Você só pode acessar aquivos que estejam na mesma máquina da sua aplicação. Uma solução para isso é fazer um cliente java (uma aplicação normal), e fazê-la acessar o servidor via RMI ou web-services (RMI é beeeem mais rápido). Então a sua aplicação no cliente tem acesso ao arquivo normalmente.
[quote=lance]Sim, o cliente dá o caminho do arquivo e ele procura na tua máquina. Por isso funciona.
Eu fiz um site, e tudo que eu precisa fazer no lado do cliente eu user javascript, acho q tu pode usar também pra isso (javascript, por rodar no lado do cliente, tem algumas restrições)
[quote=eduardodrg]Obrigado pelo retorno, mas agora estou sem saber o que fazer
qualquer luz (exemplo) será bem vindo [/quote]
:arrow: vc cria sua aplicação no servidor (pode ser um servlet)
:arrow: vc cria uma aplicação java que deve rodar no cliente
:arrow: sua aplicação cliente e servidor se conectam via RMI
:arrow: sua aplicação cliente lê o arquivo na máquina cliente (onde a aplicação cliente está rodando) e processa ou envia o arquivo para a aplicação servidor
Não entendi, eu tenho um javascript onde o usuário informa o arquivo e o caminho, esse não é o problema, o que acontece é que ao tentar ler esse arquivo no servidor, o java não encontra ele, e segundo a resposta do nosso colega esse mecanismo não é possivel
Obrigado pelas sugstões, mas não posso fazer esses procedimentos na minha empresa, além disso o pessoal do suporte não diz o que se deve fazer (nem tente entender)
o que tenho que fazer:
Enviar um tela para que o usuario informe o arquivo (nome e Path)
Ler esse arquivo e grava-lo em um diretório do servidor
Isso tudo em uma servlet
Acho que devo usar a classe FILEUPLOAD
mas não sei como fazer isso
mas ainda tenho dúvidas.
Já fui no endereço informado
Não entendo porque o FILIUPLOAD usa um List
Eu sei qual é o arquivo origem e para onde ele deve ir (destino), porque devo ler um diretório (se for isso que eu entendi) ?
Não entendi onde informo o arquivo destino (nome/path) no exemplo, e não entendi onde informo o destino (nome/path)
Sim, o cliente dá o caminho do arquivo e ele procura na tua máquina. Por isso funciona.
Eu fiz um site, e tudo que eu precisa fazer no lado do cliente eu user javascript, acho q tu pode usar também pra isso (javascript, por rodar no lado do cliente, tem algumas restrições)