Tópico recorrente. Enfim, vamos lá. A principal causa de problemas com Java Web Start está na má definição de dados no arquivo jnpl. Então vou tentar fazer um micro-tutorialzinho aqui. O seu arquivo .jnpl deve ter uma cara parecida com esta aqui:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="[URL onde está localizado seu jnpl]" href="[nome do seu arquivo jnpl]">
<information> (1)
<title>[Nome da sua aplicação]</title>
<vendor>[Nome da sua empresa ou o seu mesmo]</vendor>
<homepage href="[URL da sua empresa]" />
<offline-allowed />
</information>
<resources>
<j2se version="1.4+" /> (2)
<jar href="[URL relativa para o .jar da sua aplicação]" /> (3)
</resources>
<application-desc main-class="[nome completo da sua classe principal]" /> (4)
</jnlp>
Comentários:
:arrow: b[/b]: os dados que estiverem aninhados dentro da tag information serão apresentados no carregamento da sua aplicação. A tag offline-allowed indica que sua aplicação pode ser utilizada offline (duhhh).
:arrow: b[/b]: indica a versão de J2SE que o cliente deve ter instalado em sua máquina para poder abrir a aplicação. O sinal + indica que sua aplicação suporta qualquer versão superior àquela que você indicou.
:arrow: b[/b]: vamos supor que sua aplicação (.jar) esteja em www.blablabla.com/apps/myapp.jar. Sendo assim, o seu “codebase” deve ser www.blablabla.com e o valor da tag “application-desc main-class” deve ser /apps/myapp.jar.
:arrow: b[/b]: é aquela mesma conversa: se sua classe principal estiver dentro do pacote foo.bar, então o valor a ser colocado ali deve ser foo.bar.Main.