Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232

    [Java] Anomalia classe richiamata da servlet

    Salve...nel file web.xml, ho mappato una servlet aggiungendo anche l'opzione <load-on-startup>...così facendo (come tutti sapete) il metodo INIT della servlet viene eseguito in fase di avvio dell'applicazione...in questo INIT, istanzio una classe e chiamo un metodo della stessa che, dopo aver eseguito il suo compito, mi ritorna un vettore di stringhe...il mio problema sta nella classe..in particolare, questa classe accede ai dei file XML/XLS dirattamente da URL tipo "http://localhost:8084/web/file/file.xml"...mi capita però che, se lancio la servlet manualmente, tutto quello che c'è nel metodo init e cioè l'istanziazione della classe, la chiamata al metodo ed il resto, vanno a buon fine...mentre se avviene il load-on-startup della servlet, stranamente, la classe che per fare ciò che deve fare,deve accedere a quei file XML direttamente da URL, non riesce ad accedervi...come si spiega? è un problema di context-path? o cosa??? Aiuto!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    UP!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    UP!!! Nessuno sa spiegarmi il perchè???

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    ma perchè accedi con la url?

    e cosa succede? e lanciata un'eccezione?

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    in pratica sto utilizzando il package xalan che, preso un file XML ed un relativo XSL, genere dinamicamente il contenuto HTML, ad esempio di una pagina web...restituendo il codice in una stringa o in un altro tipo di outputStream...quello che serve a me, è avere questa/e stringa/e in memoria all'avvio dell'applicazione...dunque il ciclo è il seguente...nel mio web.xml ho mappato una servlet con l'opzione "load-on-startup"...questa esegue l'init() e nell'init istanzia tale classe e chiama un metodo...questo metodo, prende sti benedetti file .XML e .XSL da URL (da dove li dovrebbe prendere se no???) ed esegue la trasformazione....il problema è che quando tutta questa operazione viene fatta all'avvio dell'applicazione...mi viene generata un'eccezione che mi dice che la classe addetta alla trasformazione, non riesce a "compilare il file .XML" (ed anche gli altri .XML e .XSL)...quando invece se faccio partire l'applicazione normalmente, senza nessuna servlet load-on-startup e, invoco la stessa servlet, mettendo lo stesso codice che c'è nell'init(), nel service(), tutto va a buon fine...come mai????

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    UP!!!

  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    1 - posta l'eccezione che ti viene restituita
    2 - non ho capito perche devi far riferimento a tali file con un'url, e non con un percorso nel file system
    3 - questa url appartiene al dominio dell'applicazione che si sta inizializzando? magari scatta l'eccezione perchè l'applicazione non è ancora inizializzata e te già stai chiedendo una sua risorsa, mentre se chiedi i file dopo, quando l'applicazione è partita il problema non c'è più.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    ma perchè dovrei fare riferimento al path del file system? se l'applicazione gira su una macchina server qualsiasi, come faccio a sapere il path del file system...con l'url so che, sarà quello e basta su qualsiasi macchina server...rispiegami il fatto del dominio dell'applicazione???

  9. #9
    Originariamente inviato da fraper
    ma perchè dovrei fare riferimento al path del file system? se l'applicazione gira su una macchina server qualsiasi, come faccio a sapere il path del file system...con l'url so che, sarà quello e basta su qualsiasi macchina server...rispiegami il fatto del dominio dell'applicazione???
    puoi usare la path a partire da:

    codice:
    String path = getServletContext().getRealPath("/");
    Mentre se ti servono parametri visibili in tutte le servlet, puoi anche metterli nel web xml e recuperarli con:

    codice:
    getServletContext().getInitParameter("nome_parametro");

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    credo che sia proprio quello che mi serve...grazie...proverò.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.