Lendo e criando arquivos a partir de um aplicacao no Web Start

7 respostas
A

Pessoal,

Criei uma aplicação Swing e executo ela pelo Web Start. Esta aplicação cria um arquivo XML no descktop da máquina cliente. Este arquivo deveria ser processado pela aplicação e criado um novo arquivo PDF.

O arquivo XML é gerado mas a geração do PDF não procede. Alguem sabe o que pode estar acontecendo? Como faço para ler o arquivo xml e processa ele apartir da aplicação executando no Web Start? Estou usando o seguinte:

String outputFileName = "relatorioSilRi.fo";

  File fileOut = new File(outputFileName);
  FileOutputStream file = new FileOutputStream(fileOut);
  BufferedOutputStream fileOutput = new BufferedOutputStream(file);
  fileOutput.write(textoXML.getBytes());
  fileOutput.flush();
  fileOutput.close();

  File fofile = new File(fileOut.getAbsolutePath());
  String pdfNomeArquivo = fofile.getAbsolutePath();
  File pdfFile = new File(pdfNomeArquivo.replaceAll(".fo",".pdf"));
  convertFO2PDF(fofile,pdfFile);

7 Respostas

_fs

Você tem que assinar a sua aplicação e o usuário tem que clicar no famigerado “yes” para poder acessar o sistema de arquivos.

Compre a Java Magazine deste mês, tem um tutorial ótimo sobre JWS que, entre outras coisas, aborda este assunto.

A

A minha aplicação já esta assinada e já executa. O problema é que não consigo ler o arquivo gerado pela aplicação. A aplicação quando executada no cliente gera um arquivo xml o qual deve ser lido para gerar um pdf. A aplicacao cria o .xml no descktop, mas não esta lendo ele para gerar o pdf. Portanto o pdf nem é gerado.

Quando executo a aplicação pelo JBuilder sem o Web Start funciona. O xml é gerado e o pdf também. Mas quando coloco no Web Start so é gerado o xml.

E ai?

_fs

Entendi o problema.

Ao invés de criar o arquivo no desktop, pode seguir a sugestão no link que eu te passei, sobre o System.getProperty( “user.home” )

A

Mudei o java.policy do Web Start para

grant {

permission java.security.AllPermission;

};

neste caso o arquivo .pdf é criado só que vazio. Portanto ele ainda não esta lendo o primeiro arquivo criado (.xml) para gerar o segundo (.pds). Apesar de agora estar criando o arquivo.

Estranho já que ele cria o primeiro arquivo sem necessitar do allpermission. Porque isso acontece?

_fs

Antes de se preocupar com o SecurityManager, você tem certeza que está encontrando o arquivo xml que criou?

E outra, você precisa realmente criar o arquivo xml fisicamente no cliente? Não pode fazer isso só em memória?

A

Tenho certeza que ele esta sendo criado na máquina cliente. Mas não tenho certeza se esta sendo lido.

Para ler simplesmente faço.

File fo = new File(“fo.xml”);
Source src = new StreamSource(fo);

A

O problema esta na seguinte linha de código:

driver.setRenderer(Driver.RENDER_PDF);

Ele não seta o drive para PDF e não msotra nenhuma menssagem de erro quando executado via Web Start.

Alguem tem alguma solução?

Criado 1 de março de 2005
Ultima resposta 1 de mar. de 2005
Respostas 7
Participantes 2