Monday, February 4, 2013

localhost waits to load applet using chrome

O meu colega tinha um problema. Sempre que acedia à aplicação por localhost o browser chrome ficava pendurado (durante cerca de um minuto) nas páginas que utilizavam um componente java (applet).

Ligamos o debugger no java (control panel -> java -> advanced -> debugging -> enable tracing / enable logging / show applet life cycle exceptions) / Java Console -> Show Console)

A JVM considerava o componente como tendo expirado de validade e tentava fazer download novamente, mas como este estava por trás de autenticação integrada, e esta por alguma razão aparentemente falhava, demorava algum tempo até que a jvm se decidisse a carregar o componente com o ficheiro .jar em cache.

O workaround encontrado foi colocar a virtual folder onde o ficheiro se encontra com anonymous authentication.

Fica a pergunta se a jvm consegue fazer autenticação integrada (kerberos e/ou ntlm) e como configurar a mesma. Aparentemente pelos pedidos que eram efectuados (um dos pedidos era ao dc, e era este que ficava pendurado), seria possível realizar tal autenticação, no entanto no ambiente de qualidade as pastas referentes aos .jar também se encontram com anonymous authentication.

PS: da última vez que tive um problema semelhante também coloquei excepções no web server para permitir anonymous ao servir ficheiros com a extensão .jar, no entanto esta solução pode não ser aceitável onde os ficheiros .jar contenham regras de negócio.

No comments:

Post a Comment