02. juli 2007 - 11:25
Der er
19 kommentarer og 1 løsning
jdbc mssql forbindelse
Er der noget galt i det her? public Dbp(String dataforbindelse) { try { Context init = new InitialContext(); Context ctx = (Context)init.lookup("java:comp/env"); DataSource ds = (DataSource)ctx.lookup(dataforbindelse); conn = ds.getConnection(); } catch(Exception s) { System.out.println("SQL dataforbindelse fejlede" + s); } }
Annonceindlæg fra Barco
Dbp d = new Dbp("jdbc/NAVN");
burde det ikke være plain sailing
Jooooooooo. Altsaa hvis den JNDI lookup kan finde en DataSource for dataforbindelse.
javax.naming.NameNotFoundException.
og jeg har tjekket og dobbelttjekket at den findes
Burde det ikke bare virke, altså forudsat at dataSourcen findes?
Den siger jo at det paagaeldende navn ikke findes. Hvad indeholder dataforbindelse variablen ? Hvordan har du konfigureret data source i config filen ?
dataforbindelse variablen indeholder jdbc/navnet jeg har brugt Oracle Enterprise manager til at konfigurerer data sourcen
Hvis der er en ting jeg har laert omkring JNDI, saa er det at man aldrig ved hvad det fulde navn bliver. Hvis din app server kommer med en JNDI browser, saa check hvad din ressource faktisk hedder. Ellers lav en lille JSP side som dumper alt der er i JNDI.
02. juli 2007 - 15:45
#10
Det aner jeg ikke hvordan jeg skal gøre
02. juli 2007 - 16:18
#11
Jeg har kigget højt og bredt men jeg kan ikke finde et eksempel på hvordan jeg laver den jsp side du snakker om. Jeg kan heller ikke se at der skulle være nogen browser i app serveren.
02. juli 2007 - 16:33
#12
I can make an example. Later.
02. juli 2007 - 16:35
#13
Jeg vil være meget taknemmelig
02. juli 2007 - 23:39
#14
Det er godt nok irriterende at det ikke virker. Kan bare slet ikke se hvad der skulle være galt andet end at navnet åbenbart er forkert, eller også er datasourcen ikke blevet opretttet.
03. juli 2007 - 02:39
#15
Prøv med den her: <%@ page import="javax.naming.*,java.io.*" %> <%! public void dump(String indent, String name, JspWriter jw) throws NamingException,IOException { Context ctx = new InitialContext(); NamingEnumeration en = ctx.list(name); while(en.hasMore()) { NameClassPair ncp = (NameClassPair)en.next(); jw.println(indent + ncp.getName() + " " + ncp.getClassName() + "<br>"); jw.flush(); if(ncp.getClassName().indexOf("Context") >= 0 && name.indexOf(ncp.getName()) < 0 && !ncp.getName().equals("timedCacheFactory")) { dump(indent + "--", name + "/" + ncp.getName(), jw); } } } %> <% dump("", "java:", out); %>
03. juli 2007 - 02:39
#16
Den er testet med Tomcat og JBoss.
03. juli 2007 - 05:33
#17
javax.naming.NameNotFoundException: java: not found
03. juli 2007 - 08:05
#18
Jeg har prøvet det i et andet miljø. Der virker det fint. ----jdbc org.apache.naming.NamingContext ------MINFORBINDELSE org.apache.commons.dbcp.BasicDataSource
03. juli 2007 - 10:54
#19
Nu er jeg en meget glad mand. Problemet var at det skulle hedde jdbc i stedet for java:comp/env og så skulle. Læg endeligt et svar og mange tak for hjælpen
03. juli 2007 - 12:18
#20
ok
Kurser inden for grundlæggende programmering