Avatar billede lauritspetersen Nybegynder
18. januar 2003 - 23:28 Der er 14 kommentarer og
1 løsning

Java og XML

Hej,

Problematikken er som følger :

Der er defineret en connectionpool til oracle på en server i xml. Javakoden requester en forbindelse via connectionpoolen gennem namespacet på poolen.
Problemet er så at der er en fejl sansynligvis i javakoden således at der bliver kastet en naming-exception da navnet på poolen ikke kan findes. Vedlagt XML definitionen samt javakoden.

Et eventuelt eksempel der virker ville også være en stor hjælp.

M.v.h. Laurits Petersen

JAVA:

try
{
InitialContext ctx = new InitialContext();
Object o = ctx.lookup("defaultPool");
DataSource ds = (DataSource)PortableRemoteObject.narrow(o, DataSource.class);
this.connection = ds.getConnection();
this.statement = connection.createStatement();
}

XML:

<JDBCConnectionPool CapacityIncrement="1"
DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="1"
MaxCapacity="10" Name="defaultPool"
Password="xxxxxx"
Properties="xxxxx"
RefreshMinutes="0" ShrinkingEnabled="false" Targets="appserver2"
TestConnectionsOnReserve="false"
TestTableName="TestTable" URL="xxx:xxxxxx:xxxxxx"/>
Avatar billede disky Nybegynder
18. januar 2003 - 23:34 #1
post lige en stacktrace fra din exception.
Avatar billede arne_v Ekspert
18. januar 2003 - 23:35 #2
Altså det er en Oracle database !

Men hvilken application-server er det ?
Avatar billede disky Nybegynder
18. januar 2003 - 23:36 #3
kald evt. getExplanation()  på din exception så vi får årsagen at vide :)
Avatar billede lauritspetersen Nybegynder
18. januar 2003 - 23:41 #4
Det er en Oracle database. Systemet kører på Weblogic. Jeg har desværre ikke mulighed for at lave en stacktrace da jeg ikke har adgang herfra.
Såvidt jeg husker var det mere detaljeret noget lignende :

javax.namingException ... can't find 'defaultPool' ... remaining " "
Avatar billede arne_v Ekspert
18. januar 2003 - 23:51 #5
Du kan ikke slå en pool op i JNDI.

Du kan slå en data resource op i JNDI.
Avatar billede arne_v Ekspert
18. januar 2003 - 23:53 #6
Så prøv med:

<JDBCConnectionPool CapacityIncrement="1"
DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="1"
MaxCapacity="10" Name="defaultPool"
Password="xxxxxx"
Properties="xxxxx"
RefreshMinutes="0" ShrinkingEnabled="false" Targets="appserver2"
TestConnectionsOnReserve="false"
TestTableName="TestTable" URL="xxx:xxxxxx:xxxxxx"/>

<JDBCDataSource JNDIName="defaultDS"
                      Name="defaultDS"
                      PoolName="defaultPool"
                      Targets="appserver2"/>

og:

try
{
InitialContext ctx = new InitialContext();
Object o = ctx.lookup("defaultDS");
DataSource ds = (DataSource)PortableRemoteObject.narrow(o, DataSource.class);
this.connection = ds.getConnection();
this.statement = connection.createStatement();
}
Avatar billede arne_v Ekspert
18. januar 2003 - 23:54 #7
Og jeg har aldrig brugt WebLogic !

Men jeg læste lidt på BEA's web-site.

Og så fandt jeg følgende:
  http://www.ingenotech.com/FAQ/faq_69.html
som jeg tror du kan få stor fornøjelse af !
Avatar billede lauritspetersen Nybegynder
18. januar 2003 - 23:55 #8
Ok. Jeg har ikke før arbejdet med connectionpool's og har blot fået udleveret denne stump kode af firmaet som jeg fik af vide skulle virke. Indtil nu har jeg set flere eksempler på hvordan man kan hente fra xml'en og jeg er i tvivl om hvordan jeg skal tilgå poolen. Er der måske en stump kode ?
Avatar billede lauritspetersen Nybegynder
19. januar 2003 - 00:01 #9
I eksemplet på bea er poolen jo også defineret som en <resource> det er den ikke i den xml kode der definerer config'en for applikationen. Men den kan altså kun tilgåes hvis den er defineret som en resource ? Jeg har ikke selv skrevet XML'en og har så vidt jeg ved ikke lov til at rette i den.

Hvad gør defaultDS ?
Avatar billede arne_v Ekspert
19. januar 2003 - 00:04 #10
Hvis ikke de har defineret en JDBCDataSource, så tror jeg ikke,
at du kan få det til at virke.

defaultDS er bare en data source som kommer fra defaultPool
connection pool'en.
Avatar billede lauritspetersen Nybegynder
19. januar 2003 - 00:04 #11
Hmmm. Jeg har kigget lidt på den tekst der var på det link du sendte og det må være løsningen. Ærgeligt at man får ting man blot skal bruge some ikke er i orden.

Tak for hjælpen
Avatar billede disky Nybegynder
19. januar 2003 - 00:06 #12
Er det bare mig, eller er der gået kraftig inflation i point udgivningen ?
Dette er ikke en kritik af dig Laurits, men 200 point for at linke til et site, er i overkanten synes jeg.
Avatar billede lauritspetersen Nybegynder
19. januar 2003 - 00:13 #13
Ikke i nuværende situation. Jeg har selv søgt efter en løsning og har brugt utallige timer på at slås med skidtet. Jeg er blevet hyret til at programmere applikationen, ikke at deploye den ( hvilket jeg er kommet til at skulle gøre alligevel ). Derfor har jeg fået udleveret parametrene der skulle lægges ind i koden og fået at vide at det virkede.

Derfor har jeg regnet med at tingene var i orden og først nu begyndt at betvivle tingene. Så en løsning på problemet fra en anden vinkel p.t. om det så bare er et link er velkommen
Avatar billede disky Nybegynder
19. januar 2003 - 00:15 #14
Okay det har du selvfølgelig ret i :)

Held og lykke med opgaven.
Avatar billede lauritspetersen Nybegynder
19. januar 2003 - 00:19 #15
Tak skal du have. Og gudskelov for at dette site eksisterer
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
Kurser inden for grundlæggende programmering

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