Geração de arquivos

Pessoal,

Precisarei gerar uns arquivos meio (mas nem tão) grandes. Acho que o maior tempo de resposta será da query e nã na formatação do arquivo.

O cara que coordena o projeto quer uma solução mirabolante ao invés de disponibilizar isso via website.

Meio que descartei web services.

Alguém já fez isso de alguma maneira diferente, usando autenticação de usuários?

[ ]´s

Já fiz alguma coisa meio parecida usando .NET. A idéia era usar IO não-bloqueante e fazer o processo de geração de arquivo em uma Thread separada, para liberar a thread principal para outras coisas. Então, se eu fosse fazer algo parecido com isso em Java, misturaria NIO+Threads e mandava ver.

Se os dados forem em formato tabular, eu faria o seguinte:

geraria o arquivo no formato CSV. Desde Excel , até o OpenOffice
conseguem ler legal esse formato. Existe um componente
open source para isso:

http://datafile.sourceforge.net/

depois de gerado, vc pode zipar o arquivo e enviar para o usuario.

Se o tempo for muito demorado, vc faz uma servlet que gera, e depois
que terminar vc rediciona para o download (mais ou menos como
funciona o esquema de pesquisa desse forum).

Suponha que vc. esteja rodando num containner de servlet. Sendo assim a autenticacao fica por conta do sessoes.

Sinceramente acho que isto é mais uma das idéia mirabolantes do pessoal daqui.

Um dos distribuidores quer que uma aplicação deles vá buscar o arquivo de tempos em tempos para atualizar a base deles.

Sugerí então de manter a funcionalidade do site, porém adicionar um Servlet que faria isso, inclusive autenticando o usuário. Esse Servlet retornaria o código HTTP como respostas. Se for código 400, então o arquivo vem no body http. Se for 403, é erro de permissão e etc.

É melhor não querer reinventar a roda nem complicar para uma coisa simples.

Abraços

Tem que ser via http? Senão vc gera o arquivo de tempos em tempos e joga num diretório mapeado em um servidorzinho ftp ai, dai a aplicação do cara se loga no ftp e puxa o arquivo. (EAI CTRL-M)

Esse TXT será gerado dinamicamente, de acordo com as datas informadas pelo consumidor, além de outros parâmetros.

Então faça um servlet mesmo e dependendo das condições de banda, conexão etc… gera, zipa e manda pra ele.