Pergunta

Usamos o Java Webstart para implantar um aplicativo Java em nossa intranet. O aplicativo recebe atualizações frequentes. Uma vez por algum tempo, um usuário iniciará o aplicativo do ícone da área de trabalho depois de atualizarmos os potes / guerra no servidor da web (o timestamp alterado) e o Java Webstart lançará a versão antiga em vez de baixar uma nova.

Aqui está uma pasta do nosso JNLP, como você pode ver, o offline é ativado, mas atualize a verificação sempre e a política sempre. Além disso, o sinalizador de download está ansioso. Pelo meu entendimento, essas opções devem sempre resultar em uma verificação do cache contra o timestamp no servidor e um download do arquivo JAR.

Estou começando a ficar frustrado com o Webstart! Alguém viu problemas semelhantes? Alguma soluções? Estou ficando cansado de levar as pessoas ao limpar seu cache do webstart manualmente a cada terceiro ou quinto atualização.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc//DTD JNLP Descriptor 6.0//EN" "http://java.sun.com/dtd/JNLP-6.0.dtd">
<jnlp spec="1.0+" codebase="$$codebase" href="$$name">
  <information>
    <title>TITLE</title>

    <vendor>VENDOR</vendor>

    <description>Our Utility Application</description>

    <description kind="short">Our Utility Application PRD</description>
    <icon href="images/util_icon.png" height="64" width="64"/>
    <offline-allowed/>
    <shortcut online="true">
      <desktop />
      <menu submenu="Utility Apps"/>
    </shortcut>
  </information>

  <security>
     <all-permissions />
  </security>

  <update check="always" policy="always" />

  <resources>
    <!-- requires 1.6+ -->
    <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" java-vm-args="-ea" initial-heap-size="128m" max-heap-size="512m" />

    <!-- application code, download jar before we start. -->
    <jar href="OurUpdatedJarName.jar" main="true" download="eager" />

    <property name="configfile" value="updatedJarName.config" />
  </resources>

  <application-desc main-class="main.Client">
    <argument>-D</argument> 
  </application-desc>
</jnlp>
Foi útil?

Solução

Você pode ter resolvido o problema - mas o JNLP Spec = "1.0+" - o elemento é suportado somente após o JNLP Spec 6.0+. Provavelmente, essa é uma das razões para suas atualizações falharem.

Outras dicas

Parece um problema de aplicativo Secure Store Service em vez do aplicativo de serviço BDC.

Certifique-se de que o ID do aplicativo Secure Store tenha os membros apropriados (o ID que você usou para Identidade do Windows do Windows).Ir para o Central Admin - Secure Store Service - Gerenciar - clique no aplicativo de destino - Editar clique em Next- e adicione todos os usuários que precisarão de permissão para acessar o tipo de conteúdo externo para "membros".

Digite a descrição da imagem aqui Digite a descrição da imagem aqui

Eu tive os mesmos problemas que o seu e o resolvi fazendo o seguinte:

  1. Mudar

    <jar href="OurUpdatedJarName.jar" ...

    para

    <jar href="OurUpdatedJarName-$VERSION.jar" ...

  2. Coloque a versão $ no <a href="foo-$VERSION.jnlp">Run</a>

Atualizamos automaticamente a versão $ para cada implantação.

Eu sei que é uma solução feia, mas é uma que funciona para nós toda vez.

Este problema é causado por offline-allowed marcação.

Por jnlp spec

Se for especificado offline, o Java Web Start também verificará se uma atualização está disponível. No entanto, se o aplicativo já for baixado, o tempo limite após alguns segundos, nesse caso, o aplicativo em cache será iniciado. Dada uma conexão razoavelmente rápida do servidor, A versão mais recente do aplicativo geralmente será executada, mas não é garantida. O aplicativo, no entanto, pode ser executado offline.

Distribuímos os aplicativos Java Web Start em uma dúzia de países e, quando descobrimos que o aplicativo não estava atualizando corretamente, era para uma configuração Miss da rede do condado ou nas configurações de rede do computador do usuário, principalmente o proxy. Em nossas oficiais centrais na Espanha, a Web Java começa sempre funcionando bem.

Eu tenho usado o clone Java Webstart Nextx.jar. Eu rastreei meu problema de jar não atualizando para o uso do método urlConnection.getLastupDated (). Como ele usa o método da cabeça para obter o último nome do nome do arquivo, esse é o motivo pelo qual às vezes ele não é download devido ao cache do getLastUpdated (). Decidimos usar nosso próprio método de atualização de nosso aplicativo, pois o Webstart é falho.

A conta de serviço autônoma é uma conta universal que fornece acesso a dados iguais a todos os usuários autorizados.Você pode usar uma conta para todos os serviços ou uma conta para cada aplicativo de serviços.

É dependente do seu secondty, se você quiser restringi-lo a DataSource específico do aplicativo de serviço, então você precisa de uma conta dedicada, caso contrário você pode usar um para todos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top