Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    47

    [JAVA] problema con JNDI

    ciao a tutti, ho un problema che mi sta facendo diventar matto, praticamente ho settato 2 jndi 1 per accedere ad un db e l'altra per accedere ad un file di properties in modo da poter gestire alcuni parametri esternamente all'applicazione, la jndi jdbc viene letta correttamente, invece la jndi del file di properties mi va in errore.


    innanzi tutto vi spiego la mia configurazione, ho un server tomcat 5.5, struts 1.3, winxp, eclipse helios sp1.

    poi nel web.xml ho queste righe di codice

    codice:
    <resource-ref id="ResourceRef1">
        	<res-ref-name>jdbc/DB</res-ref-name>
        	<res-type>javax.sql.DataSource</res-type>
        	<res-auth>Container</res-auth>
        	<res-sharing-scope>Shareable</res-sharing-scope>
       </resource-ref>
    <resource-ref id="ResourceRef3">
            <description>file Properties</description>
            <res-ref-name>url/fileprop</res-ref-name>
            <res-type>java.net.URL</res-type>
            <res-auth>Container</res-auth>
         </resource-ref>
    invece nel context.xml del server ho queste righe
    codice:
    <Resource name="jdbc/DB" auth="Container"
    		type="javax.sql.DataSource" username="user"
    		password="pass" driverClassName="com.ibm.db2.jcc.DB2Driver"
    		url="jdbc:db2://192.xxx.xxx.xxx:50000/DBName"/>
    	<Resource  name="url/fileprop" auth="Container"
    		type="java.net.URL" 
    		url="C:\deploy\file.properties"/>
    e infine per richiamare le jndi uso queste istruzioni
    codice:
    Context initial = new InitialContext();
    Context env = (Context) initial.lookup("java:comp/env");
    javax.sql.DataSource data = (javax.sql.DataSource)PortableRemoteObject.narrow(
    					env.lookup("jdbc/DB"),javax.sql.DataSource.class);
    URL prop = (URL) PortableRemoteObject.narrow(
    					env.lookup("url/fileprop"), URL.class);
    quando richiamo la connessione db va tutto bene, il db viene letto e scritto.
    quando chiamo il file di properties mi ritorna questo errore

    codice:
    javax.naming.NamingException: Cannot create resource instance
    	at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:143)
    	at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
    	at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
    	at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
    	at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
    	at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
    non riesco a capire il motivo, ho spulciato su google, ma ritrovo solo problemi relativi al jdbc, e nessun riferimento ai file di properties.
    Qualcuno sa aiutarmi??

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    47
    in realtà il problema non è con l'accesso al DB (che peraltro funziona egragiamente). Il problema è che non riesco a recuperare il file di properties.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    47
    ho risolto in questo modo.

    nel context.xml del server ho dichiarato un enviroment

    codice:
    <Environment name="fileprop" type="java.lang.String" 
        	value="C:\deploy\file.properties"/>

    e poi mi faccio restituire il valore in questo modo

    codice:
    String fileStr = (String) env.lookup("fileprop");

    nel web.xml non ho aggiunto nulla.

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.