Tenho uma Applet que funciona perfetinha e sua função é transferir um arquivo do usuário local pro servidor remotamente.
Então concluímos que seria melhor usar Java Web Start pra evitar de sempre fazer o download da Applet. O tempo passou a ser fator crítico do negócio.
A princípio simplesmente criei um arquivo .JNLP e a Applet funcionou parcialmente. O problema é que o Servlet que recebe de minha applet o arquivo faz pesquisa em atributos disponíveis na seção.
Aqui está o problema: se entendi, a partir do Web Start não faz sentido pesquisar seção (session) pois a não existe!
Eu tenho vários dados na seção e preciso deles.
Alguém tem alguma alternativa pra contornar isto sem a necessidade de reprogramar algo? Se não tiver, qual seria a alternativa em se tratando de reprogramação?
Até onde eu sei, WebStart é uma ferramenta de deployment. Parece que você vai ter que mexer no seu applet para se comunicar com o servidor via HTTP ou algum outro meio…
Deixa eu ver se entendi: você tem duas aplicações paralelas, browser e GUI tentando compartilhar uma sessão HTTP?
Você pdoe usar um parâmetro na URL como sessionID [acho que o container gera isso automagicamente…] para que o carinha tenha a sessão identificada em qualquer um dos aplicativos, mas vejo uns problemas:
[list]
1 - Como compartilhar este ID entre browser e aplicação (dizer à seu app para usar o valor X como sessionid)
2 - Segurança, issod eixa sua aplicação de pernas abertas. Se eu estiver na baia ao lado e olhar o fim da sua querystring posso me passar por você sem nem fazer login
[/list]
Você pode implementar uma segurança mais robusa, mas como fazer o browser trocar dados com uma aplicação?
Ah, e só uma correção: é Sessão
[]s
F
fimbrizi
Primeiramente, obrigado pela correção. Percebi o erro de semântica.
Você entendeu corretamente. Fiz uma breve pesquisa sobre HttpSession e não vi como retornar uma sessão apartir de um ID.
Acredito que terei de criar arquivos temporários para recuperar as informações da sessão do browser pro aplicativo.
O aplicativo rodando no JWS ao realizar uma requisição através de um objeto HttpURLConnection, conecta-se a um Servlet, e neste farei a pesquisa no arquivo e recupero a informação que preciso.
Muito Obrigado.
PS. Ainda está em aberto a pergunta pra outras soluções.
pcalcado
É como quando o usuário não habilita cookies.
Como você vai fazer seu browser, assumindo que seja um padrão tipo IE ou Mozilla, escrever um arquivo no filesystem do cliente?
[]s
F
fimbrizi
Não será meu browser que escreverá um arquivo.
O Arquivo será criado em algum Action do struts que criei.
pcalcado
Estou falando especificamente da variável, arquivo… o que quer que identifique a sessão e que precisa ser compartilhado pelo browser e pelo Swing.
Se você logar com o brwoser e obtiver um identificador de sessão qualquer, vamos supor que seja um número inteiro, você precisa fazer seu aplicativo Java ser informado deste número. Considerando as restrições de segurança de um browser… como faria isso?