2013-10-18 13 views
16

Da quando abbiamo installato Java 1.7.0u45 la nostra applicazione WebStart mostra un notevole ritardo all'avvio su sistemi Windows (non abbiamo provato altre piattaforme).Ritardo di avvio lungo per l'applicazione Java WebStart da Java 1.7.0u40

Sintomo: dopo aver fatto doppio clic sull'icona dell'applicazione sul desktop, la schermata iniziale viene visualizzata rapidamente, rimane per un po 'di tempo (come in precedenza) e si chiude. Dopo questo abbiamo un ritardo di circa 1 minuto. Quindi, finalmente, la finestra dell'applicazione si apre e tutto funziona come un incantesimo.

La nostra applicazione ha funzionato senza problemi fino a Java 1.7.0u25. Java 1.7.0u40 era la prima versione in cui il problema si presentava.

La nostra app è costituita da un singolo file jar (eseguibile). La parte più interessante sono alcune classi native per l'accesso alle porte seriali che si trovano all'interno del jar. Ho aggiunto il file jnlp alla fine di questo post.

abbiamo cercato di scoprire quale sia la causa del ritardo potrebbe essere:

Controllato il rilascio di Java WebStart note a http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/enhancements-7.html per le nostre versioni.

Per quanto possiamo dire, non c'è nulla che possa causare il comportamento. Abbiamo notato che ci sono nuove voci manifest (permessi, codebase, nome-applicazione). Questi sono stati aggiunti.

Cerca su Google e StackOverflow.

Alcuni sembrano avere un problema simile, ma non abbiamo mai visto una soluzione. In molti casi le persone hanno problemi con il download di file jar e download ripetuti. Questo sembra non essere il nostro problema.

usati strumenti difficili

abbiamo voluto sapere ciò che l'applicazione fa in detto minuto di tempo. Quindi abbiamo usato process explorer e process monitor da sysinternals e wireshark. Abbiamo scoperto che durante il tempo di attesa il processo tenta di comunicare via IP con 'vip1.g-anycast1.cachefly.net' (205.234.175.175) e 93.184.220.29. Quest'ultimo sembra essere un server di certificati, non ho davvero capito cosa sia questa cosa di cachefly. In entrambi i casi vediamo un syn TCP, ma nessuna risposta, nessuna ulteriore comunicazione. Entrambi gli adddresses sono pingable.

Non correlato a IP-roba: siamo sicuri che l'applicazione non è stata scaricata, ma è stata avviata dalla cache e che il nostro principale è chiamato dopo il il ritardo, non prima.

Questo è dove siamo bloccati

Eventuali ulteriori idee su come risolvere questo problema? Siamo gli unici a sperimentare questo comportamento?

jnlp (Nota che gli URL vengono rielaborate manualmente):

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="6.0+" codebase="http://53.48.16.33:8180/jenkins/job/TcuTerm%20-%20Deploy/lastSuccessfulBuild/artifact/5000_Construction/5100_Code_Base/TcuTerm/antlocal" > 
    <information> 
     <title>TcuTerm</title> 
     <vendor>Development</vendor> 
     <icon     href="http://53.48.16.33:8180/jenkins/job/TcuTerm%20-%20Deploy/lastSuccessfulBuild/artifact/5000_Construction/5100_Code_Base/TcuTerm/src/com/x/tcu/app/term/resources/tcu.jpg"/> 
     <icon kind="shortcut" href="http://53.48.16.33:8180/jenkins/job/TcuTerm%20-%20Deploy/lastSuccessfulBuild/artifact/5000_Construction/5100_Code_Base/TcuTerm/src/com/x/tcu/app/term/resources/tcu.jpg"/> 
     <icon kind="splash" href="http://53.48.16.33:8180/jenkins/job/TcuTerm%20-%20Deploy/lastSuccessfulBuild/artifact/5000_Construction/5100_Code_Base/TcuTerm/src/com/x/tcu/app/term/resources/splash.jpg"/> 
     <homepage href="https://confluence.detss.corpintra.net/display/TCU/TcuTerm"/> 
     <offline-allowed/> 
     <shortcut> 
     <desktop/> 
     <menu submenu="TcuTerm"/> 
     </shortcut> 
    </information> 
    <security> 
     <all-permissions/> 
    </security> 
    <resources> 
     <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/> 
     <jar href="TcuTerm.jar" main="true"/> 
    </resources> 
    <application-desc main-class="com.x.tcu.app.term.TcuTerminal"/> 
    <update check="timeout"/> 
</jnlp> 

risposta

11

Sì, la risposta di atulsm ha dato il calcio giusto.Ma continuate a leggere: ho cercato di seguire il suggerimento, ma non sembrava buono dato che nel pannello di controllo Java la voce era già disabilitata (il segno di spunta non era impostato). L'impostazione ha provocato la visualizzazione temporanea del segno di spunta (non appena è stata eseguita e terminata un'applicazione WebStart, l'impostazione è tornata a non selezionata), quindi sembra che l'impostazione non sia scritta correttamente nel file di configurazione di Java .

FINALMENTE: ho controllato il Deployment Configuration File e impostato deployment.security.revocation.check=NO_CHECK manualmente nelle proprietà di distribuzione. Questo ha risolto il problema!

+0

Grazie anche a me. – Blackvault

2

ho sperimentato questo problema ed è stato a causa del certificato controlli di revoca applicate per impostazione predefinita. Disabilita (scheda avanzata => Esegui i controlli di revoca dei certificati su ") e dovrebbe andare bene!

Problemi correlati