Utilizando Applets - como utilizar classes dentro da WEB-INF?

13 respostas
R

bom galera, é o seguinte ...

consigo utilizar um applet normalmente quando este é composto por uma unica classe, ou seja, nao utilizo nenhuma outra classe a nao ser da própria API do java pra cria-lo.

Em uma aplicacao WEB suas classes (beans) estarão dentro da pasta WEB-INF a qual nao consigo acessar.

para chamar o applet estou utilizando

<applet alt="Applet" code="SeuApplet.class" codebase="/MinhaAplicacaoWEB/pastaOndeEstaOApplet/" height="300" width="500">
		
	</applet>

como disse funciona que é uma beleza sem utilizar nenhuma outra classe, mas quando preciso utilizar alguma classe que esta dentro da minha source folder fica impossivel.

a solução que encontrei foi pegar todas as classes que o meu applet precisa e coloco tudo na mesma pasta. Funcionou perfeitamente. O incoveniente é que preciso recompilar as classes e remover a instrução 'package', se não nao funcionaria.

minha pergunta é, existe uma outra solução para este problema, hoje já esta funcionando mas nao me parece uma boa opção.

agradeço a colaboração!!

[...]s

Rafael

13 Respostas

T

Como você disse, WEB-INF é “escondida” pelo web server, e você não pode acessá-la.

Se seu web server for Unix/Linux você pode tentar fazer uns truques com ln -s para criar links simbólicos, para que tudo que seja escrito em WEB-INF/classes possa ser refletido no diretório das applets, mas o correto é encapsular tudo em um JAR em vez de deixar as classes do applet todas “espalhadas” no seu web server.

Se você puder impor que todos os clientes da applet usem Java 5 ou 6, você pode usar um recurso que economiza muito tráfego, chamado PACK200. Leia a documentação com cuidado porque fora o fato de você ter de encapsular seu arquivo .jar em um arquivo .jar.pack.gz, você precisa criar uma servlet, CGI ou outra coisa parecida (exceto no caso do Apache) só para servir corretamente os arquivos .jar.pack.gz.

R

no caso de encapsular tudo em um jar, o correto seria eu selecionar as classes que eu precisaria, mas deveria manter a mesma estrutura de diretorios que esta na minha aplicação!?

outra coisa, esse jar devo coloca-lo como uma biblioteca no meu classpath!? ou devo colocar a pasta juntamente com o applet …

outra coisa,

como chamo esse arquivo .jar, pesquisando vi algumas pessoas utilizando um parametro ‘archive’ na tag do applet …
qual o jeito correto!?

agradeço os esclarecimentos …

[…]s

Rafael

tRuNkSnEt

Além do que já foi falado existe outra coisa a ser pensada.
Um applet pode ser malicioso e acessar recursos dentro do Servidor que está servindo esse applet então, como nem todo applet é assim malicioso o modelo de segurança da plataforma java exige que esse applet seja assinado.

Para obter mais detalhes acesse o link:
http://www.lcmi.ufsc.br/jacoweb/restrito/documentos/assinatura/index.htm

R

existe mesmo a necessidade dessa tal assinatura!?

coloquei coisa para funcionar sem a necessidade de nada além do cotidiano …

e a respeito dos jars … alguem poderia esclarecer!? continuo com esta duvida …

[…]s

antoniopopete

Vocês conseguiram utilizar applet a partir de suas aplicações web?
Como fizeram?

R

Sim,
quando sobrar um tempo eu posto a solução … final do dia … tenho um exemplo aqui em algum lugar …

[]s

antoniopopete

Você lembra como você diz qaul o path do jar que contém as classes do applet?

R

Isso eu fiz quando tava engatinhando no Java, entao se notarem qlqer atrocidade cometida com a linguagem nao encanem :smiley:

espero que seja util,

[]s

Rafael

antoniopopete

No caso esses parâmetros que você passa, pela tag imp, são parâmetros vindos da action, suponho, não é?

R

sim, sao parametros resgatados e passados para JSP via Servlet …

note que na JSP tem como é a chamada correta para utilizar o applet … nesse caso o applet esta em um jar, o que é o mais correto como ja foi anteriormente citado pelo thingol

qlqer duvida … estamos ai …

[]s

antoniopopete

Voce sabe como eu posso encapsular dois jar?
Porque tenho minhas classes do applet e gostaria de a API que elas utilizam

R

entao, vc pode passar mais de um jar como parametro … de uma olhada http://jas.freehep.org/Documentation/howto/applet/default.shtml
basta vc encapsular os applets em um jar, e mandar as libs q eles utilizam nos seus proprios jars …

do lado cliente esses jars vao ser “descompactados” e “colocados no classpath” …

nunca fiz esse teste, mas é quase certeza que é assim que funciona … se der certo posta pra gente saber como faz!! :smiley:

[]s

antoniopopete

Não consegui chamar minha applet não.
Para ela rodar, ela precisa de um parâmetro xml. que não consigo invocar por nada nesse mundo…debugando parece que a applet nem aparece no ciclo de vida da action…

Criado 5 de setembro de 2007
Ultima resposta 21 de mai. de 2008
Respostas 13
Participantes 4