2013-05-24 23 views
5

Mi sto imbattendo in un problema davvero strano in cui le richieste HTTP di un browser sembrano essere scartate dal connettore Simple utilizzato da un server di Restlet.Restlet con richieste di drop del connettore semplice?

configurazione

Server:

  • Restlet 2.1.2 server di
  • Restlet-semplice estensione (viene fornito con semplice 4.1.21)
  • estensione Restlet-crypto per l'autenticazione digest

Il server sta servendo pagine Web per browser e usa XMLHttpRequest di javascript per recuperare gli aggiornamenti. Alcuni di questi XMLHttpRequests non sono però completi. Il debugger javascript per Chrome mostra lo stato "non riuscito" per questi; Il debugger di Firefox registra un tempo di completamento senza codice di stato HTTP e risposta registrata. Uno sniffer di pacchetti indica che le richieste problematiche sono effettivamente inviate al server, ma il server non risponde mai. Il debug mostra che queste richieste non raggiungono mai il nostro codice server.

Ho verificato il problema con Firefox, Chrome e IE. Tutti e tre i browser (ultime versioni) si imbattono in questo problema. Inoltre, ogni browser è ripetutamente e riproducibile con problemi con le stesse identiche richieste. Questa serie di richieste differisce però tra i tre browser.

Ciò che è veramente strano è che il problema emerge quando si utilizza il nome della macchina del server (test eseguito su una LAN), ma non quando si utilizza l'indirizzo IP della macchina. Passare da Digesto a Autenticazione di base fa andare via anche il problema, così come sostituire il connettore semplice con Jetty.

Sono propenso a passare a Jetty ora, ma mi piacerebbe ancora sapere cosa sta succedendo. Qualcuno ha mai visto un simile comportamento o ha un'idea di cosa sta andando storto qui?

+0

È necessario inserire il codice per configurare il Restlet con l'autenticazione. – gma

risposta

0

Recentemente abbiamo riscontrato un problema simile con Restlet, che ha comportato il mancato completamento di alcune richieste. Il problema era un accesso alla mappa non sincronizzato all'interno di Restlet, che è già stato risolto (https://github.com/restlet/restlet-framework-java/issues/753).

Se uno o più thread provocano un elevato traffico della CPU, questo potrebbe indicare che si è interessati a questo problema.

Se il tuo XMLHttpRequests entra in parallelo potresti essere interessato.

+0

Questo particolare problema potrebbe causare errori casuali. Nel mio caso, tuttavia, l'insieme di richieste che vengono ignorate sono sempre riproducibili allo stesso modo. Tuttavia, l'impostazione di questa opzione varia a seconda del browser. Così firefox perde le risposte a un gruppo di richieste, IE a un altro set e Chrome a un altro set. –