Ik krijg er onderhand wel een punthoofd van, na een week lang FAQs lezen en HOWTOs uitproberen wil het maar niet lukken dus misschien dat iemand hier er meer verstand van heeft 
Probleem: DB connection pooling werkt onder JSP (eindelijk) maar wil niet werken met servlets.
Dingen die ik al heb geprobeerd: tomcat faq, jndi docs op sun.com, zoeken op GoT, zoeken op google, zoeken op google groups. Helaas allen zonder resultaat.
Setup: Tomcat 5.0 server met een servlet die connect naar een database.
Dingen die het WEL doen: ik kan dus inmiddels al wel verbinding maken via een JSP-pagina naar database, zie hier de code:
Dit werkt inmiddels door toevoeging van 2 onderdelen in wat config files: tomcat/conf/server.xml en tomcat/conf/catalina/localhost/test.xml, hieronder de stukken vd configs:
Dit geheel werkt ook naar behoren, verder nix aan de hand (voorbeeld gevonden via google en is eigenlijk het enige voorbeeld wat werkte...)
locatie van bestanden: de mysql-connector staat verder in tomcat/common/lib
Alleen op het moment dat ik het geheel omzet naar een servlet dan blijf het hangen bij het connecten naar de InitialContext, ik heb verder precies dezelfde tags in de /conf/catalina/localhost/HelloDatabase.xml gezet (dat van de resource link) maar helaas...
Dit is de code in de servlet
je zou zeggen precies hetzelfde als in de JSP maarja op de een of andere manier wilt het daar wel en hier niet...
De logfile zegt dit:
2005-11-16 18:24:47,580 ERROR [main] com.akonix.application.helloDatabase.HelloDatabase - javax.naming.CommunicationException: Cannot connect to ORB [Root exception is org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No]
Het lijkt dus alsof er geen registry wordt opgestart waarmee de app zich aan kan melden, maar alsik jdk/bin/tnameserve.exe opstart dan gaatie een klein stukje verder maar blijft dan hangen bij:
2005-11-16 17:57:31,687 ERROR [main] com.akonix.application.helloDatabase.HelloDatabase - javax.naming.NameNotFoundException [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
Het lijkt wel alsof er tijdens het draaien van servlets de applicaties niet kunnen connecten naar de registry van tomcat (wat dus WEL lukt als er gebruik wordt gemaakt van JSPs).
Ik hoop dat iemand hier meer kaas van heeft gegeten
Probleem: DB connection pooling werkt onder JSP (eindelijk) maar wil niet werken met servlets.
Dingen die ik al heb geprobeerd: tomcat faq, jndi docs op sun.com, zoeken op GoT, zoeken op google, zoeken op google groups. Helaas allen zonder resultaat.
Setup: Tomcat 5.0 server met een servlet die connect naar een database.
Dingen die het WEL doen: ik kan dus inmiddels al wel verbinding maken via een JSP-pagina naar database, zie hier de code:
code:
1
2
3
4
5
6
7
| <%@ page language="java"
import="java.sql.*,javax.sql.*,javax.naming.*"
Context initCtx = new javax.naming.InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup("dbGlobal");
Connection conn = ds.getConnection();
%> |
Dit werkt inmiddels door toevoeging van 2 onderdelen in wat config files: tomcat/conf/server.xml en tomcat/conf/catalina/localhost/test.xml, hieronder de stukken vd configs:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| Dit staat in de server.xml tussen de GlobalNamingResources-tags
<Resource name="dbconnection" type="javax.sql.DataSource"/>
<ResourceParams name="dbconnection">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>password</name>
<value>password</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://interne-ip/database</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>username</value>
</parameter>
</ResourceParams> |
code:
1
2
3
| Dit staat dan in de test.xml tussen de Context-tags: <ResourceLink global="dbconnection" name="dbGlobal" type="javax.sql.DataSource"/> |
Dit geheel werkt ook naar behoren, verder nix aan de hand (voorbeeld gevonden via google en is eigenlijk het enige voorbeeld wat werkte...)
locatie van bestanden: de mysql-connector staat verder in tomcat/common/lib
Alleen op het moment dat ik het geheel omzet naar een servlet dan blijf het hangen bij het connecten naar de InitialContext, ik heb verder precies dezelfde tags in de /conf/catalina/localhost/HelloDatabase.xml gezet (dat van de resource link) maar helaas...
Dit is de code in de servlet
code:
1
2
3
4
5
6
7
8
9
10
11
| initCtx = new InitialContext();
if (initCtx == null) throw new Exception("Boom - No Initial Context");
ctx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource) ctx.lookup("dbGlobal");
if (ds == null) throw new Exception("Boom - No Datasource");
m_logger.info("DataSource getted");
conn = ds.getConnection();
m_logger.info("Connection made"); |
je zou zeggen precies hetzelfde als in de JSP maarja op de een of andere manier wilt het daar wel en hier niet...
De logfile zegt dit:
2005-11-16 18:24:47,580 ERROR [main] com.akonix.application.helloDatabase.HelloDatabase - javax.naming.CommunicationException: Cannot connect to ORB [Root exception is org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No]
Het lijkt dus alsof er geen registry wordt opgestart waarmee de app zich aan kan melden, maar alsik jdk/bin/tnameserve.exe opstart dan gaatie een klein stukje verder maar blijft dan hangen bij:
2005-11-16 17:57:31,687 ERROR [main] com.akonix.application.helloDatabase.HelloDatabase - javax.naming.NameNotFoundException [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
Het lijkt wel alsof er tijdens het draaien van servlets de applicaties niet kunnen connecten naar de registry van tomcat (wat dus WEL lukt als er gebruik wordt gemaakt van JSPs).
Ik hoop dat iemand hier meer kaas van heeft gegeten
[ Voor 9% gewijzigd door Helox-in-a-box op 16-11-2005 19:14 ]