Bonjour à tous,
Je débute sur tomcat et rencontre quelques problèmes de configuration de datasources. Suivant différents tutoriels trouvé sur le net, j'ai installer Tomcat 5.0, Eclipse et le plugin WTP.
Pour créer la datasource ds01 je m'y suis pris comme suit à partir d'Eclipse.
Dans le web.xml de mon projet j'ai défini :
Puis dans le server.xml dans le contexte de mon application j'ai mis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/ds01</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
34
35
36
37
38
39
40
41 <Context docBase="appli01" path="/appli01" reloadable="true" source="org.eclipse.jst.j2ee.server:appli01"> <Resource name="jdbc/ds01" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/ds01"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>maxActive</name> <value>4</value> </parameter> <parameter> <name>password</name> <value>informix</value> </parameter> <parameter> <name>url</name> <value>jdbc:informix-sqli:/kurosawa:22015/base01:informixServer=devtcp</value> </parameter> <parameter> <name>driverClassName</name> <value>com.informix.jdbc.IfxDriver</value> </parameter> <parameter> <name>maxIdle</name> <value>2</value> </parameter> <parameter> <name>username</name> <value>informix</value> </parameter> </ResourceParams> </context>
Après dans mon application j'exécute le code suivant
Et une exception est levée par mon driver jdbc je pense. La trace est celle ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Context ctx = new InitialContext(); if (ctx == null) { Tool.genererMsgInFile("Boom - No Context"); } else { DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/ds01"); if (ds == null) { Tool.genererMsgInFile("Boom - No DataSource"); } else { conn = ds.getConnection(); } }
Cett exception n'intervient pas sous weblogic alors je me dis que je dois configurer Tomcat comme un manche. Une piste ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
34
35
36
37
38
39
40
41
42
43
44 org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Message text will be provided in later releases java.lang.NullPointerException) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540) at com.appli01.traitements.manager.AppliManager.getConnection(AppliManager.java:254) at com.appli.traitements.servlets.AccesServlet.service(AccesServlet.java:45) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534) Caused by: java.sql.SQLException: Message text will be provided in later releases java.lang.NullPointerException at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:454) at com.informix.jdbc.IfxSqliConnect.<init>(IfxSqliConnect.java:997) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:274) at com.informix.jdbc.IfxDriver.connect(IfxDriver.java:253) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851) ... 28 more
Merci pour votre aide
Geekomono
Partager