Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    5

    come debuggare un file che non vine mai chiuso

    Ciao,

    Ho un'applicazione web su tomcat 5.5. C'è qualche servlet che lascia un file aperto e quindi non si riesce a fare undeploy dell'applicazione, bisogna proprio fermare il server e riavviarlo ogni volta.

    Qualcuno mi può suggerire un modo di identificare la servlet colpevole??? Per favore non ditemi di eseguire 10.000 righe di codice passo per passo...

    Grazie

  2. #2
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Non ti da nessuna eccezione che ti faccia risalire almeno a quale puntatore è?
    Sai almeno di che file si tratta?

    Cmq i puntatori a file o db ricordarsi sempre di chiuderli.
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    5
    Purtroppo no, nessuno stack trace. Mi darebbe un'eccezione se ci fosse un tentativo di accedere a un file chiuso, ecc. ma questo è un caso diverso.

    Il file è il jar che contiene le servlet (WEB-INF/lib/adminServlet.jar). Non so perchè l'autore della webapp abbia messo le servlet in una libreria ma mi ritrovo a dover continuare il progetto.

    Ci sono numerosi punti nel codice dove si fa getClass().getResource(...), sospetto che uno di questi InputStream non venga mai chiuso.

  4. #4
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Sinceramente controllerei tutti i casi ( quello menzionati da te prima ) e sperando che siano pochi.
    Ma cmq prova a veder la classe che con il metodo getResources() magari lì c'è qualcosa.
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    5
    Purtroppo non sono pochi. Grazie per le risposte.

    Se qualcuno cmq mi suggerisce un modo semiautomatico di testare ringrazierò molto.

  6. #6
    La sezioni articoli su Java di html.it contiene un paio di articoli che potrebbero interessarti:

    Il debug di una Servlet

    Individuare gli errori in una pagina JSP

    Per quanto invece riguarda il debug di applicazioni su eclipse ti consiglio questo interessante tutorial in italiano

    Debug con Eclipse

    Per informazioni teoriche sul Debugging visita la relativa pagina di Wikipedia che trovi qui

    per quanto concerne il tuo problema ti ricordo che quando leggi e/o scrivi un file con Java è buona norma rilasciare le risorse nel blocco finally del corrispondente try/catch.
    Usando questo accorgimento in futuro non avrai più di questi problemi

    facci sapere se sei riuscito a risolvere il problema poi

    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    5
    Grazie. Conoscevo già queste tecniche di debugging, è solo che volevo risparmiarmi il lavoraccio di usarle su ogni singola servlet (ce ne sono un sacco!).

    Ho provato a esplodere il jar in WEB-INF/classes a server spento, poi ho cancellato il jar e riacceso tomcat. Infatti trova le classi e nessun file rimane in uso, si riesce a fare undeploy senza problemi. Sono contento per aver risolto ma stupito perché il jar rimanesse in uso..

    Comunque adesso converto l'applicazione in modo che le servlet siano parte dei sorgenti e non più una libreria (questo è anche giusto perché le librerie devono contenere metodi business e le servlet sono interfacce verso il mondo esterno).

    Il problema è risolto. Grazie delle risposte.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.