2012-12-21 9 views
6

sto incorporando un applet Java in questo modo:Webkit tenta di scaricare Java applet classe prima di leggerlo da JAR

<object type="application/x-java-applet"> 
    <param name="codebase" value="/path/to/jar" /> 
    <param name="archive" value="myapplet.jar" />' + 
    <param name="code" value="my.package.MyClass" /> 
</object> 

L'applet funziona bene in tutti i browser, ma i browser Webkit (Chrome e Safari) sono entrambi fastidioso il server con una richiesta inutile, che tenta di scaricare il file MyClass (che è nel vaso e funziona bene da lì) dal server:

Chrome mostra questo errore nella console:

GET http://localhost/test/my.package.MyClass 404 (Not Found) 

Lo stesso accade quando si utilizza il tag <embed> anziché <object> ma non accade quando si utilizza il tag deprecato <applet>.

Esiste la possibilità di impedire in qualche modo il download di questo file di classe? Ho sentito voci su un parametro codebase_lookup ma l'impostazione di questo parametro su false non modifica nulla.

+0

Se si mantiene il controllo sulla vostra applicazione, suggerisco solo per usare il tag APPLET deprecato mentre funziona correttamente. Sicuramente il supporto per questo potrebbe essere abbandonato in seguito, ma durante questo periodo apparirà probabilmente una soluzione migliore. Sicuramente le cose vanno peggio se passi l'applicazione al tuo cliente. – h22

+0

L'utilizzo del tag applet non è una soluzione, è una soluzione alternativa. Spero in una risposta che forse spiega perché Webkit sta cercando di scaricare il file di classe e come disabilitare questo comportamento. Forse è un bug di Webkit e qualcuno conosce la posizione di una segnalazione di bug che contiene più informazioni su questo problema. Chissà. – kayahr

+0

Sì, è una soluzione alternativa, non una risposta. – h22

risposta

2

ho scoperto che questo problema si verifica quando codice del parametro dell'applet si trova nel param tag. Se si sposta al corrispondente oggetto 's attributo, 404 errori non appaiono più:

<object type="application/x-java-applet" code="my.package.MyClass"> 
    <param name="codebase" value="/path/to/jar" /> 
    <param name="archive" value="myapplet.jar" /> 
</object> 

provata su:

Windows 8, Java 1.7.0_25: Chrome 28, Firefox 23, IE10

OS X 10.6.8, Java 1.6.0_51: Chrome 28, Firefox 23, Safari 5.1.9

OS X 10.7.5, Java 1.7.0_25: Firefox 23, Safari 6.0.5

OS X 10.8.4, Java 1.7.0.25: Firefox 23, Safari 6.0.5

OS X 10.9, Java 1.7.0_25, Firefox 23, Safari 7.0