Jeg vil gerne teste/udvikle min kode udenfor Tomcat. Jeg har forsøgt at tilføje et par linier kode som skal registrere min Datasource. Men når jeg kalder "addToEnvironment" får jeg en exception
"Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial"
Det skal lige bemærkes at MyDatasource() initialiseres med url, driver-klasse, brugernavn og password, og fjerne jeg udkommentering ved den første getConnection(), så får jeg en connection til min database.
1) Hvad mangler jeg?
try { InitialContext ic = new InitialContext(); /******************** testkode **********************/ DataSource myDs = new MyDatasource(); // con = myDs.getConnection(); ic.addToEnvironment ("java:comp/env/jdbc/myDB", myDs); /******************************************************/ Context envCtx = (Context) ic.lookup("java:comp/env"); DataSource ds = (DataSource) envCtx.lookup("/jdbc/myDB"); con = ds.getConnection(); } catch (Exception ex) { throw new Exception(ex.getMessage()); }
2) Hvordan laver jeg en egentlig test klasse der kan udnytte webserveren JNDI registrering?
Ja, ideen er at udvikle og test mine klasser udenfor Tomcat. De første linier i mit kodeeksempel kan vel betrages som en slags lokal JNDI-server. Problemet er bare at jeg ikke kan få det til at virke.
Jeg vil lave nogle testklasser, og det kan jeg ikke umiddelbart gøre hvis koden udføres i Tomcat. Jeg har forsøgt at finde noget om JNDI serverer, men har ikke rigtigt haft held. Er det en større sag? Jeg kan da ikke være den eneste med dette ønske!
JNDI er kun et interface. Der ligger en server bagved. Og det er vistnok en lidt større sag. Om man kan fuske noget ved jeg ikke - jeg har aldrig set det gjordt.
Hvis du går igang med Cactus, så kan jeg godt give dig nogle tips.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.