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

    [Java - Struts 1] Problema con Struts 1: request "vuota"

    Ciao a tutti,

    ho un problema con Struts 1 (so che ormai non è più usato, ma è un progetto che ho ereditato... ), su un'applicazione web installata su WebLogic versione 11g.
    Il problema che riscontro è che ogni tanto e in maniera completamente random, quando invio una richiesta in una delle molte form presenti nel portale l'applicazione mi risponde con un 500 Internal Server Error. Guardando il log l'errore è il seguente:

    org.apache.struts.actions.DispatchAction - Request[/Emessi] does not contain handler parameter named 'method'. This may be caused by whitespace in the label text.

    Nel progetto ho una classe SecurityAction che estende la classe DispatchAction, la ServletException viene lanciata quando il metodo sovrascritto dispatchMethod richiama il metodo della superclasse. Aggiungendo ulteriori stampe di log mi sono accorto che il problema è dovuto al fatto che quando viene richiamato questo metodo, l'oggetto request è "vuoto", non contiene il parametro "method" (che indica quale metodo della Action eseguire) ma non contiene nemmeno i parametri inseriti dall'utente nella form.

    Secondo voi da cosa può essere generato questo problema? Per quale motivo non arriva nessun parametro nella request? Secondo me non è un problema legato alla sessione utente perchè altrimenti mi si presenterebbe la pagina di login (gestito tramite SSO).
    Ogni aiuto è graditissimo, grazie in anticipo!

  2. #2
    Per caso sullo struts config nella mappatura della action c'è il parametro method?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    37
    Intendi dire se nell'action mapping della action nel file struts-config.xml c'è l'attributo parameter valorizzato in questo modo:

    parameter="method"

    ??? In questo caso, sì. E questo parametro è presente in tutte i mapping.

    Posto qui l'action mapping del caso in questione, ci tengo a sottolineare che però non è l'unica action in cui si verifica il problema di cui sopra.

    codice:
    <action path="/Emessi" name="emessiForm" type="******.action.EmessiAction" 
    scope="request" validate="false" input="main.private.emessi.ricerca" parameter="method">
    	<forward name="success_init" path="main.private.emessi.ricerca" />
    	<forward name="success_init_import" path="main.private.emessi.importa" />
    	<forward name="success_search" path="main.private.emessi.risultati" redirect="true" />
    	<forward name="dettaglio_emesso" path="main.private.emessi.dettaglio" />
    	<forward name="cancella_emesso" path="main.private.emessi.cancella" />
    	<forward name="pubblica_emesso" path="main.private.emessi.pubblica" />
    	<forward name="modifica_emesso" path="main.private.emessi.modifica" />
    	<forward name="conferme_emessi" path="main.private.emessi.conferme" />
    	<forward name="associa_titolo_form" path="/forms/privatearea/emessi/modificaStatoEmesso.jsp" />
    	<forward name="associa_titolo_form2" path="/forms/privatearea/emessi/modificaStatoEmesso2.jsp" />
    	<forward name="associa_titolo_form3" path="/forms/privatearea/emessi/modificaStatoEmesso3.jsp" />
    	<forward name="conferma_associazione" path="/forms/privatearea/emessi/confermaAssociazione.jsp" />
    	<forward name="conferma_associazione_e_pubblicazione" path="/forms/privatearea/emessi/confermaAssociazioneEPubblicazione.jsp" />
    	<forward name="elenco_forzati" path="/forms/privatearea/emessi/elencoForzati.jsp" />
    	<forward name="errore_associazione" path="/forms/error.jsp" />
    	<forward name="report_scaricati" path="/ReportServlet?type=scaricati" />
    </action>

  4. #4
    Si intendevo quello.
    Da quello che vedo portebbe essere che si perde il parametro, nel senso non so che giro faccia ma potrebbe essere quello il problema controlla che ogni volta che faccia il submit nel form sia valorizzato questo parametro e nel caso chiami la Action tramite URL anche lì devi mettergli il parametro sulla richiesta.
    Ho visto che dici che anche i parametri del form arrivano vuoti sei sicuro di fare una submit e non una chiamata alla URL?

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    37
    Ho controllato ed effettivamente viene fatto il subito della form, però da un javascript che controlla i valori inseriti. C'è da dire anche che il parametro "method" viene settato o con un campo "hidden" oppure sempre tramite il javascript, con la notazione document.forms[0].method.value = "valore".

    Ho pensato che magari con questa notazione potrebbe essere inteso come il method di invio dei dati (GET o POST), ma il problema non è quello.

    Il problema si verifica anche (credo) quando la pagina con la form compilata rimane inattiva per un po' di tempo, quando ci ritorno clicco su submit e a quel punto i parametri spariscono. Come è possibile, se la form è compilata? Scade la sessione? Non credo, altrimenti mi verrebbe fuori la pagina di login...

  6. #6
    Altra domanda per parametri vuoti intendi dire che l'ActionForm associato alla action arriva nullo o con gli attributi nulli?
    E' veramente strana sta cosa.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    37
    Questo purtroppo non te lo so dire, però credo che sia come per la request, nel senso che l'oggetto in sè non è nullo ma non contiene nessun parametro...

    Grazie mille per l'aiuto che mi stai dando!

  8. #8
    Prova alla chiamata javascript a metergli elements[''method''] per capirci così:
    codice:
    document.forms[0].elements['method'].value = "valore";

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