Ajuda gerar aquivo Flex + java

Pessoa, estou com um problema, criei uma pasta chamada Boletos no meu flex_src, porem qdo eu mando pela minha classe java gerar um boleto :

         jBoleto.closeBoleto("Boletos\\"+codigoPedido+".pdf");

ele fala que nao acha o diretorio (java.io.FileNotFoundException: Boletos\asda.pdf (O sistema não pode encontrar o caminho especificado)
at java.io.FileOutputStream.open(Native Method))

algum pode me dar um help??

obrigado

Ola

O fato da pasta estar dentro do diretório source do projeto Flex, não significa que será criada.

Quando você exporta seu projeto para um servidor de aplicação, esta pasta fica disponível dentro do WEB-INF/ ?

Att

Cara… ainda nao cheguei nessa parte :smiley: estou apenas em desenvolvimento ainda… e queria gerar esse arquivo para depois mostrar ele no navegador, porem qdo eu mando criar sem o Boletos\ ele cria no meu workspace, e eu nao consigo recuperar isso para mostrar na web, pois fala que nao tenho permissao

Tente colocar o path inteiro (C:…).

E se mais tarde ele for fazer um deploy em um servidor linux?

Sem querer ser chato, mas acho que o mundo dele não vai acabar rs. Dá pra mudar e a aplicação dele ctz não é tão crítica assim. Bom, eu continuo achando que o certo é deixar tudo separado e em servidores separados. Isso de misturar o Flex/Java no contexto, não cheira bem…

Olá…bom dia…Faz igual o Andre disse que era para fazer…
coloca o diretório C:/… até onde esta o seu arquivo ai funciona…já passei por problema
parecido com esse antes.

Ola AUser

Gostaria de entender como deixar Java/Flex em servidores separados, quando estamos falando de uma aplicação WEB que obviamente roda através de um servidor de aplicação.

Nós temos uma solução desenvolvida em Java/Flex que gera arquivos PDF para download e ela roda tanto em servidores linux quando windows e não temos esses problemas.

Att

[quote=horochovec]Ola AUser

Gostaria de entender como deixar Java/Flex em servidores separados, quando estamos falando de uma aplicação WEB que obviamente roda através de um servidor de aplicação.

Nós temos uma solução desenvolvida em Java/Flex que gera arquivos PDF para download e ela roda tanto em servidores linux quando windows e não temos esses problemas.

Att[/quote]

Opa Horochovec,

Subentende-se que Flex é uma Tier da aplicação, e pode rodar em um servidor Web sem problemas. Já a aplicação Java deve estar sempre em um servidor de aplicação. São coisas diferentes. Essa mistura de conceitos não é interessante. Seria interessante se Flex/Java partilhassem da mesma VM. Que não é o caso.

[]'s!

Ola

Nem tem como usar a mesma VM. O SWF utiliza a VM do PC do usuário, enquanto o servidor de aplicação usa a VM instalada nele.

Mas ainda não entendi essa sua ideia de rodar em servidores separados as camadas da aplicação (visão e negocio/banco de dados) para resolver o problema do nosso colega com caminhos relativos para geração de arquivos dentro do servidor e disponibilizar para download.

Olá,

Entendi a dúvida erroneamente. Não faz sentido mesmo, entendi errado. Desculpe.

[]'s!

Depois que colocar no servidor configura o caminho pra onde vai deixar… Dá pra pegar o path, criar uma pasta e jogar as coisas lá dentro (acho que tudo em runtime mesmo). Mas agora, como é só pra testes, acho que seria mais tranquilo deixar lá no C mesmo.

Ola

Isso mesmo, voce pode pegar o path através do proprio java e fazer a criação de pastas dinamicamente. Mas como eu disse anteriormente. Usar o C:\ impede que voce utilize essa aplicação em servidores Linux/FreeBSD/Mac/etc… Perdendo assim a multi-plataforma da tua aplicação, que por sinal, é uma das premissas do Java “… run anywhere…”

Abraços

Cara pra voce nao ficar preso a isso dai, tem bibliotecas do BlazeDS, uma classe em particular chamada FlexContext com um metodo getRealPath se bem me lembro.
Coloque a pasta no flex_src e quando for inserir dados coloque a pasta como parametro. Esse erro é provavel que voce nao tenha criado a referencia ao arquivo antes de inserir dados.

Pronto e simples voce nao fica preso a sistemas operacionais.

Quanto a fazer deploy de servicos separados flex em um servidor com um deles servindo a camada visual e um tomcat servindo os requests é possível mas não é pratico.
Por exemplo se voce colocar o apache pra servir o swf e um tomcat para servir os requests do protocolo amf.

Esse metodo estatico em java resolveria o problema FlexContext.getServletContext().getRealPath("/assets"); Retornaria o path do arquivo dinamincamente por exemplo C:/assets/

agora a url para voce acessar o arquivo por um browser seria “http://” FlexContext.getHttpRequest().getServerName()+":"+FlexContext.getHttpRequest().getServerPort(); retornaria http://seudominio.com.br:8080 i.e. dai basta concatenar o nome da pasta em que esta o arquivo mais o nome do arquivo e baixar usando a classe FileReference em ActionScript.

No mais, boa sorte. :wink: Caso funcione, let me know.