Avatar billede lablo Nybegynder
14. oktober 2004 - 23:12 Der er 29 kommentarer og
1 løsning

manglende Jaybird i class library

Jeg er ny i faget mht til database indstalletion.
Jeg har delvist indstalleret min JDBC connection.
men jeg får stadig fejl ved compilering.

"javax.servlet.ServletException: no jaybird in java.library.path"
.
Jeg tror at det er classpathen, men jeg ved ikke hvor jeg skal indstallrere og hvor meget der skal indstalleres. er der nogen der kan hjælpe ?
Avatar billede arne_v Ekspert
14. oktober 2004 - 23:16 #1
Normalt skal jar filen være i classpath ved kompilering af servlets & beans
og runtime i applikationens WEB-INF/lib (medmindre den skal bruges til connection
pool og derfor skal i serverens lib).
Avatar billede arne_v Ekspert
14. oktober 2004 - 23:17 #2
Men prøve lige at beskriv hvad du har gjordt lidt mere
Avatar billede lablo Nybegynder
14. oktober 2004 - 23:24 #3
Det der er gjort er følgende:

der er installeret tomcat server og java SDK 1.4_2 og så har jeg installreret Firebird databasen som fungere fint, jeg har oprettet database via den client der er med. Der efter har jeg lavet en test database som jeg vil konnecte til via den JSP side jeg har arbejdet med. mit side ser således ud:

<%@page contentType="html"%>
<%@page pageEncoding="UTF-8"%>
<html>
<head><title>Gem til database</title></head>
<body>

<%@ page language="java" import="java.sql.*" %>
<%

// Laver strings til datavriabler fra GetName.html -->

String name;
String adr;
String post;
String by;
String mail;
int tlf;
String spm;

//Laver datafelter til DB forbindelsen -->

String host="localhost";
String User="SYSDBA";
String pass="masterkey";
String db="/Documents and Settings/Lars/Skrivebord/sql/BOGDB.GDB";
String conn;
%>

<%


try {

          // The newInstance() call is a work around for some
          // broken Java implementations

          Class.forName("org.firebirdsql.jdbc.jaybird").newInstance();

      }
      catch (Exception E) {
          System.err.println("Unable to load driver.");
          E.printStackTrace();
      }


// opretter driver objektet
//Class.forName("bogdatabasen");

// url strengen til adgangen til databasen
conn = "jdbc:firebirdsql:native:localhost/3050:/Documents and Settings/Lars/Skrivebord/sql/BOGDB.GDB";

// opretter forbindelsen til DB
//classpath="/Documents and Settings/Lars/Skrivebord/JSP filer/JDBC driver/firebirdsql.jar"
Connection Conn = DriverManager.getConnection( conn,User,pass);

//laver en SQL sætning
Statement SQLStatement = Conn.createStatement();

//laver forespørgelsen
String Query = "SELECT *, navn, FROM kunde";

// her er resultatet
ResultSet SQLResult = SQLStatement.executeQuery (Query);

while (SQLResult.next())
    {
      name = SQLResult.getString("navn");
       
        out.println("<tr><td>" + name + "</td><td>");
        }



// lukker pænt forbindelsen igen
SQLResult.close();
SQLStatement.close();
Conn.close();

%>


</body>
</html>
Avatar billede lablo Nybegynder
14. oktober 2004 - 23:25 #4
dertil skal siges jeg har lagt jaybird.DLL filen ned i common/lib sammen med JAr filerne
Avatar billede lablo Nybegynder
14. oktober 2004 - 23:49 #5
men der kunne tænkes jeg har indstalleret driverfilerne forkert, jeg er ny som sagt inde for Databaser :-)
Avatar billede arne_v Ekspert
15. oktober 2004 - 08:20 #6
Fejl beskeden kunne faktisk godt passe med at den ike kan finde en DLL fil
den skal bruge !

(men hvorfor f..... skal den bruge en DLL ????)
Avatar billede arne_v Ekspert
15. oktober 2004 - 08:21 #7
Prøv og tilføj det directory hvor DLL filen ligger til PATH
(ja PATH ikke CLASSPATH - det her er jo ikke en Java stump)
Avatar billede lablo Nybegynder
15. oktober 2004 - 10:05 #8
Når du mener Path så ændre jeg det i "milijø variablerne" ?

jeg har lavet en med:
variabel navn: PATH
variableværdi: C:/j2sdk1.4.2_05/jaybird.dll

men når dette compiles får jeg stadig fejl, men det kan måske være at det er det forkerte lib jeg referere til?
Avatar billede lablo Nybegynder
15. oktober 2004 - 10:06 #9
det skal siges jeg har lagt driver filerne, men det der dertil høre i både java SDK'et og på selve server/common/lib biblioteket
Avatar billede arne_v Ekspert
15. oktober 2004 - 10:14 #10
Ja

Og du har forhåbentligt ikke zappet alle dem der var i forvejen for PATH.

Det er kun stien der skal tilføjes:

C:\dirhvordllligger;enhelmasseandredirs
Avatar billede lablo Nybegynder
15. oktober 2004 - 10:20 #11
jeg har ikke slettet/ ændret noget i PATH det eneste er at jeg har tilføjet er
variabel navn: PATH
variableværdi: C:/j2sdk1.4.2_05

det er hvad der nu er!

men jeg ved ikke hvad der skulle have været der i forvejen, for min eneste PATH der er, er nemlig den jeg selv har oprettet, jeg har ikke "overskrevet" noget hvis det var det du tænkte :-)
Avatar billede lablo Nybegynder
15. oktober 2004 - 10:29 #12
javax.servlet.ServletException: Resource Exception. I/O error for file CreateFile (open) "/Documents and Settings/Lars/Skrivebord/sql/BOGDB.GDB"
Error while trying to open file
null
Reason: I/O error for file CreateFile (open) "/Documents and Settings/Lars/Skrivebord/sql/BOGDB.GDB"
Error while trying to open file
null


det er hvad den skriver nu efter jeg ændrede path'en så npget må være gået rigtigt,
Avatar billede arne_v Ekspert
15. oktober 2004 - 10:29 #13
Du har oprettet den i USER hvor der ikke var nogen i forvejen (der skal være noget I SYSTEM) ?

Det er helt OK.

Slashen skal vel vende dne anden vej altså:

C:\j2sdk1.4.2_05
Avatar billede arne_v Ekspert
15. oktober 2004 - 10:31 #14
Ah.

Ja. Nu får du loaded den DLL korrekt.

Den nye fejl må relatere sig til connection url'en.

conn = "jdbc:firebirdsql:native:localhost/3050:/Documents and Settings/Lars/Skrivebord/sql/BOGDB.GDB";
Avatar billede arne_v Ekspert
15. oktober 2004 - 10:32 #15
Eksisterer den database ?

Har det brugernavn som Firebird kører under adgang til den sti ?
Avatar billede lablo Nybegynder
15. oktober 2004 - 10:34 #16
jeps jeg har lagt en mappe og denne fil på mit skrivebord. og jeg har oprettet den med dette brugernavn og adgang.

men det er klart hvis den ligger under system så er det jo et problem.

jeg ændrede slashen og det har ikke umudelbart nogen betydning.

jeg checker lige min url igen :-)
Avatar billede lablo Nybegynder
15. oktober 2004 - 10:40 #17
nu har jeg rettet URL'en men nu kommer den igen og siger den mangler en driver
. Det eneste jeg har ændret er URL og slashen i pathen
Avatar billede lablo Nybegynder
15. oktober 2004 - 10:51 #18
SYSTEM hvilekn mappe referere du til der ?
Avatar billede lablo Nybegynder
15. oktober 2004 - 10:55 #19
ja OK system . sory det er mig der ikke er helt vågen, (det er fredag ;-) hvor i system vil du ændre noget ?
Avatar billede arne_v Ekspert
15. oktober 2004 - 10:58 #20
Jeg ville bare sikret mig at du ikke havde fjernet noget af det var i PATH
for SYSTEM (jeg tror nemlig ikke at Windows ville kune lide det).
Avatar billede lablo Nybegynder
15. oktober 2004 - 11:28 #21
jeg har lige opdaget en fejl, jeg sidder med 2 computere, så jeg kan refere fra den ene til den anden. windows har en PATH der hedder Path (med små bogstaver), den manglede i ovenstående, men hvis den er case sensitiv så burde jeg ikke kunne overskrive den med PATH ?
Avatar billede lablo Nybegynder
15. oktober 2004 - 11:33 #22
det skal sige jeg har ændret den tilbage igen til win standard opsætning, men jeg vil komme til at overskrive Pathen alligevel
Avatar billede lablo Nybegynder
15. oktober 2004 - 13:22 #23
Så efter en længere udredning af det der var gået galt fandt jeg endelig ud af hvordan den skulle kringles. men arne send en svar meddelse og få dine 100 points for jeg takker mange gange for din hjælp
Avatar billede arne_v Ekspert
15. oktober 2004 - 13:24 #24
ok
Avatar billede arne_v Ekspert
15. oktober 2004 - 13:24 #25
Hvad var det sidste lille nøk der skulle til for at få det til at virke ?
Avatar billede lablo Nybegynder
15. oktober 2004 - 13:28 #26
jeg ændrede classpathen til "original" windows streng og der kunne jeg tilføje pathen til jaybird.dll 'en og det virkede altså, dertil skulle jeg så ændre driver navnet til FBDriver i stedert for jaybird. Så kommer den ny og brokker sig over at mit SQL er forkert, men det er jo en adne historie :-)

men enud engang tusind tak for din tålmodighed :-D
Avatar billede arne_v Ekspert
06. november 2004 - 18:33 #27
så mangler du bare lige at acceptere svaret
Avatar billede lablo Nybegynder
06. november 2004 - 22:14 #28
Jeg sender det hermed :-) jeg mente bare jeg havde gjort det, men det har den åbenbart ikke reageret på.

her er dine points :-)
Lars
Avatar billede lablo Nybegynder
06. november 2004 - 22:15 #29
fik du dem nu ?
Avatar billede arne_v Ekspert
06. november 2004 - 22:16 #30
yes - alt er perfekt - jeg takker
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester