Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    22

    Recuperare il path di un file tramite JNDI

    Salve a tutti,
    praticamente, dalla mia webapp nella pagina.jsp devo recuperare il path di un file utilizzando JNDI:

    i parametri di configurazione sono i seguenti:

    web-inf/web.xml
    codice:
      	
    <resource-ref> 		
    <description>path SSO</description> 		
    <res-ref-name>url/SSOpath</res-ref-name>
    <res-type>java.net.URL</res-type> 		
    <res-auth>Container</res-auth> 	
    </resource-ref>
    web-inf/context.xml
    codice:
    <Resource name="url/SSOpath" auth="Container" 	 type="java.net.URL" 	 url="file.txt" />
    index.jsp
    codice:
    InitialContext context = new InitialContext();  		URL url=(URL)context.lookup("java:comp/env/url/SSOpath");
    quando lancio la pagina, mi dà il seguente errore:
    • description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: javax.servlet.ServletException: javax.naming.NamingException: Cannot create resource instance org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:541) org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:417) org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet .java:803) org.apache.jsp.grc_jsp._jspService(grc_jsp.java:63 8) org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet .java:803) org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:393) org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet .java:803) FT.filters.EncodingFilter.doFilter(Unknown Source) root cause javax.servlet.ServletException: javax.naming.NamingException: Cannot create resource instance org.apache.jasper.runtime.PageContextImpl.doHandle PageException(PageContextImpl.java:850) org.apache.jasper.runtime.PageContextImpl.handlePa geException(PageContextImpl.java:779) org.apache.jsp.index_jsp._jspService(index_jsp.jav a:772) org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet .java:803) org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:393) org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet .java:803) org.apache.jsp.grc_jsp._jspService(grc_jsp.java:63 8) org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet .java:803) org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:393) org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet .java:803) FT.filters.EncodingFilter.doFilter(Unknown Source) root cause javax.naming.NamingException: Cannot create resource instance org.apache.naming.factory.ResourceFactory.getObjec tInstance(ResourceFactory.java:143) javax.naming.spi.NamingManager.getObjectInstance(U nknown Source) org.apache.naming.NamingContext.lookup(NamingConte xt.java:793) org.apache.naming.NamingContext.lookup(NamingConte xt.java:140) org.apache.naming.NamingContext.lookup(NamingConte xt.java:781) org.apache.naming.NamingContext.lookup(NamingConte xt.java:140) org.apache.naming.NamingContext.lookup(NamingConte xt.java:781) org.apache.naming.NamingContext.lookup(NamingConte xt.java:140) org.apache.naming.NamingContext.lookup(NamingConte xt.java:781) org.apache.naming.NamingContext.lookup(NamingConte xt.java:153) org.apache.naming.SelectorContext.lookup(SelectorC ontext.java:137) javax.naming.InitialContext.lookup(Unknown Source) org.apache.jsp.index_jsp._jspService(index_jsp.jav a:204) org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet .java:803) org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:393) org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet .java:803) org.apache.jsp.grc_jsp._jspService(grc_jsp.java:63 8) org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet .java:803) org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:393) org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet .java:803) FT.filters.EncodingFilter.doFilter(Unknown Source) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs. Apache Tomcat/6.0.14


    Qualcuno ha idea di quale possa essere il problema?

    grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    che file vuoi leggere? dove si trova?
    RTFM Read That F*** Manual!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    22
    Ciao,
    il file è di tipo .bin, il problema non è tanto leggere un file, ma recuperare il path specificato nel context.xml. il file attualmente si trova nella stessa cartella in cui si trova la index.jsp che contiene il lookup

    nell'errore mi dice che non posso creare un'istanza, questo avviene appena viene eseguito il lookup

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    esatto....se chiami brutalmente il comando puoi eseguirlo (senza passare da jndi)
    RTFM Read That F*** Manual!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    22
    nel senso che devo richiamare direttamente il file specificando il percorso, (nel mio caso basterebbe il nome)?

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    sono due le possibili fonti di errore: non puoi eseguire bin da web app o errore jndi.
    Bisogna capire cosa blocca, provo ad escludere una fonte di errore
    RTFM Read That F*** Manual!!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    22
    in pratica la logica è questa, recupero il file .bin che mi serve per decifrare una stringa contentente i dati di accesso.

    ora i se metto il percorso del file per esteso, funziona tutto alla grande, ma dato che mi è stato chiesto di non scrivere l'indirizzo per esteso ma deve essere recuperato tramite jndi ho pensato di suddividere i passi nel seguente modo:

    1) recupero l'indirizzo del file tramite lookup
    2) una volta ottenuto l'indirizzo, procedo col decifrare la stringa

    tramite debug ho notato che l'eccezione generata, arriva dopo che viene eseguito questo codice:
    codice:
    URL url=(URL)context.lookup("java:comp/env/url/SSOpath");

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    scusa ma le librerie java hanno strumenti utili per decifrare, perché passare da JNDI?
    RTFM Read That F*** Manual!!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    22
    hai ragione, anche io preferisco gli strumenti java, ma purtroppo le policy aziendali impongono che si utilizzi jndi per referenziare i file. putroppo non dipende da me, sono oltre tre giorni che cerco di risolvere questo problema e sto diventando pazzo!!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da Simonjei
    hai ragione, anche io preferisco gli strumenti java, ma purtroppo le policy aziendali impongono che si utilizzi jndi per referenziare i file. putroppo non dipende da me, sono oltre tre giorni che cerco di risolvere questo problema e sto diventando pazzo!!!
    Genialata!!!!!
    ok allora è il lookup che fallisce...sicuro che la stringa che passi è corretta?
    RTFM Read That F*** Manual!!!

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.