Subject Re: [Firebird-Java] Re: Configuring Tomcat JNDI and Firebird
Author Rick Fincher
Great!


Glad to know there is no fundamental problem with Ibatis and JayBird.

The change in Tomcat 5.5.x confused a lot of people, but is much better
in the long run.

As for reporting problems in Yahoo groups. I don't have a clue. I've
had problems from time to time with Yahoo too.
When I reported to their tech support I got no reply.

Rick

grndeveloper wrote:

> Hi Rick,
>
> I think we finally succeed. Forget the last email.
>
> Once the context was correctly configured I was able to detect the
> problem in the Ibatis configuration file. So your first email was the
> main solution of my problem.
>
> Thanks for your patience.
>
> --- In Firebird-Java@yahoogroups.com
> <mailto:Firebird-Java%40yahoogroups.com>, "grndeveloper" <developer@...>
> wrote:
> >
> > Hi Rick,
> >
> > I write again the email...
> >
> > From your answer I initially thought that it was and Ibatis problem,
> > because I got no error when starting tomcat, but I think that with
> > your test the problem still is the datasource configuration.
> >
> > I have tested what you told me and these are the results.
> >
> > I have one application with only these files:
> > - web.xml
> > - context.xml
> > - prova.jsp
> >
> > The file prova.jsp is a copy of your example:
> > <<<<<<<<<<<<<<<<<
> > <%@ page import="javax.naming.Context"%>
> > <%@ page import="javax.naming.InitialContext"%>
> > <%@ page import="javax.sql.DataSource"%>
> > <%@ page import="java.io.IOException"%>
> > <%@ page import="java.sql.Connection"%>
> > <%@ page import="java.sql.SQLException"%>
> > <%
> > DataSource ds=null;
> > Connection connRSFind=null;
> >
> > String resp="";
> >
> > try
> > {
> > Context ctx = new InitialContext();
> >
> > if(ctx == null )
> > throw new Exception("Boom - No Context");
> >
> > ds = (DataSource)ctx.lookup("java:comp/env/jdbc/link_to_sg2_bbdd");
> >
> > try
> > {
> > connRSFind = ds.getConnection();
> > resp = "no error" ;
> > }
> > catch (SQLException e)
> > {
> > resp = "getting new data source connection failed! Error:
> "+e+"\n";
> > }
> >
> > }
> > catch (Exception e)
> > {
> > resp = "Could Not get data source, error: "+e+"\n";
> > }
> > %>
> >
> > <html xmlns="http://www.w3.org/1999/xhtml
> <http://www.w3.org/1999/xhtml>" lang="es" xml:lang="es">
> > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
> <http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>">
> > <head>
> > <link rel="stylesheet" type="text/css" href="<html:rewrite
> > forward="DisplayTableCSS"/>">
> > <title>Ficha</title>
> > </head>
> > <body>
> > <table width="100%" align="center">
> > <tr>
> > <td align="center">
> > <%=resp%>
> > </td>
> > </tr>
> > </table>
> > </body>
> > </html>
> > >>>>>>>>>>>>>>>>>
> >
> > The message I get when I execute the application is:
> > getting new data source connection failed! Error:
> > org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC
> > driver of class '' for connect URL 'null'
> >
> > Here are the tomcat logs:
> >
> > catalina.out
> > <<<<<<<<<<<<<<<<<<
> > 18/10/2006 10:55:59 org.apache.coyote.http11.Http11Protocol init
> > INFO: Initializing Coyote HTTP/1.1 on http-8080
> > 18/10/2006 10:55:59 org.apache.catalina.startup.Catalina load
> > INFO: Initialization processed in 1017 ms
> > 18/10/2006 10:55:59 org.apache.catalina.core.StandardService start
> > INFO: Starting service Catalina
> > 18/10/2006 10:55:59 org.apache.catalina.core.StandardEngine start
> > INFO: Starting Servlet Engine: Apache Tomcat/5.5.9
> > 18/10/2006 10:55:59 org.apache.catalina.core.StandardHost start
> > INFO: XML validation disabled
> > 18/10/2006 10:56:01 org.displaytag.filter.ResponseOverrideFilter init
> > INFO: Filter initialized. Response buffering is enabled
> > 18/10/2006 10:56:02 org.apache.coyote.http11.Http11Protocol start
> > INFO: Starting Coyote HTTP/1.1 on http-8080
> > 18/10/2006 10:56:02 org.apache.jk.common.ChannelSocket init
> > INFO: JK: ajp13 listening on /0.0.0.0:8009
> > 18/10/2006 10:56:02 org.apache.jk.server.JkMain start
> > INFO: Jk running ID=0 time=0/57 config=null
> > 18/10/2006 10:56:02 org.apache.catalina.storeconfig.StoreLoader load
> > INFO: Find registry server-registry.xml at classpath resource
> > 18/10/2006 10:56:02 org.apache.catalina.startup.Catalina start
> > INFO: Server startup in 3469 ms
> > 18/10/2006 10:57:35 org.displaytag.filter.ResponseOverrideFilter init
> > INFO: Filter initialized. Response buffering is enabled
> > >>>>>>>>>>>>>>>>>>>>
> >
> > localhost.2006-10-18.log
> > <<<<<<<<<<<<<<<<<<<<<<<
> > 18/10/2006 10:56:01 org.apache.catalina.core.ApplicationContext log
> > SEVERE: StandardWrapper.Throwable
> > java.lang.NullPointerException
> > at
> >
> org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:705)
> > at
> >
> org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:670)
> > at org.apache.struts.action.ActionServlet.init(ActionServlet.java:329)
> > at javax.servlet.GenericServlet.init(GenericServlet.java:211)
> > at
> >
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
> > at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:925)
> > at
> >
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3857)
> > at
> >
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4118)
> > at
> >
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
> > at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
> > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
> > at
> >
> org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:589)
> > at
> >
> org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:536)
> > at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:471)
> > at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1102)
> > at
> >
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
> > at
> >
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
> > at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1020)
> > at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
> > at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
> > at
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
> > at
> > org.apache.catalina.core.StandardService.start(StandardService.java:450)
> > at
> org.apache.catalina.core.StandardServer.start(StandardServer.java:683)
> > at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> > at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> > at java.lang.reflect.Method.invoke(Method.java:585)
> > at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
> > at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
> > 18/10/2006 10:56:01 org.apache.catalina.core.StandardContext
> loadOnStartup
> > SEVERE: Servlet /prova threw load() exception
> > java.lang.NullPointerException
> > at
> >
> org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:705)
> > at
> >
> org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:670)
> > at org.apache.struts.action.ActionServlet.init(ActionServlet.java:329)
> > at javax.servlet.GenericServlet.init(GenericServlet.java:211)
> > at
> >
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
> > at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:925)
> > at
> >
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3857)
> > at
> >
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4118)
> > at
> >
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
> > at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
> > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
> > at
> >
> org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:589)
> > at
> >
> org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:536)
> > at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:471)
> > at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1102)
> > at
> >
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
> > at
> >
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
> > at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1020)
> > at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
> > at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
> > at
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
> > at
> > org.apache.catalina.core.StandardService.start(StandardService.java:450)
> > at
> org.apache.catalina.core.StandardServer.start(StandardServer.java:683)
> > at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> > at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> > at java.lang.reflect.Method.invoke(Method.java:585)
> > at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
> > at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
> > 18/10/2006 10:56:02 org.apache.catalina.core.ApplicationContext log
> > INFO: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain:
> > [org.apache.webapp.balancer.RuleChain:
> > [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string:
> > News / Redirect URL: http://www.cnn.com <http://www.cnn.com>],
> > [org.apache.webapp.balancer.rules.RequestParameterRule: Target param
> > name: paramName / Target param value: paramValue / Redirect URL:
> > http://www.yahoo.com <http://www.yahoo.com>],
> > [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL:
> > http://jakarta.apache.org <http://jakarta.apache.org>]]
> > 18/10/2006 10:56:02 org.apache.catalina.core.ApplicationContext log
> > INFO: ContextListener: contextInitialized()
> > 18/10/2006 10:56:02 org.apache.catalina.core.ApplicationContext log
> > INFO: SessionListener: contextInitialized()
> > 18/10/2006 10:56:02 org.apache.catalina.core.ApplicationContext log
> > INFO: ContextListener: contextInitialized()
> > 18/10/2006 10:56:02 org.apache.catalina.core.ApplicationContext log
> > INFO: SessionListener: contextInitialized()
> > 18/10/2006 10:57:35 org.apache.catalina.core.ApplicationContext log
> > SEVERE: StandardWrapper.Throwable
> > java.lang.NullPointerException
> > at
> >
> org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:705)
> > at
> >
> org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:670)
> > at org.apache.struts.action.ActionServlet.init(ActionServlet.java:329)
> > at javax.servlet.GenericServlet.init(GenericServlet.java:211)
> > at
> >
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
> > at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:925)
> > at
> >
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3857)
> > at
> >
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4118)
> > at
> >
> org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1175)
> > at
> >
> org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:510)
> > at
> >
> org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:104)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> > at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> > at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> > at
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> > at
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> > at
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
> > at
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> > at
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> > at
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> > at
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> > at
> >
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
> > at
> >
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
> > at
> >
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> > at
> >
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> > at
> >
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> > at java.lang.Thread.run(Thread.java:595)
> > 18/10/2006 10:57:35 org.apache.catalina.core.StandardContext
> loadOnStartup
> > SEVERE: Servlet /prova threw load() exception
> > java.lang.NullPointerException
> > at
> >
> org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:705)
> > at
> >
> org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:670)
> > at org.apache.struts.action.ActionServlet.init(ActionServlet.java:329)
> > at javax.servlet.GenericServlet.init(GenericServlet.java:211)
> > at
> >
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
> > at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:925)
> > at
> >
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3857)
> > at
> >
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4118)
> > at
> >
> org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1175)
> > at
> >
> org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:510)
> > at
> >
> org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:104)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> > at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> > at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> > at
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> > at
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> > at
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
> > at
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> > at
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> > at
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> > at
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> > at
> >
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
> > at
> >
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
> > at
> >
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> > at
> >
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> > at
> >
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> > at java.lang.Thread.run(Thread.java:595)
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><
> >
> >
> > --- In Firebird-Java@yahoogroups.com
> <mailto:Firebird-Java%40yahoogroups.com>, "grndeveloper" <developer@>
> > wrote:
> > >
> > > Hi Rick,
> > >
> > > I replied your message yestarday, but it seems that didn't reach
> > > the mailing list.
> > >
> > > Do you Know how can I contact the responsible of this mailing list
> > > to see if something wrong has happened with the message. Otherwise I
> > > will have to write it again...
> > >
> > > Thanks.
> > >
> > > --- In Firebird-Java@yahoogroups.com
> <mailto:Firebird-Java%40yahoogroups.com>, Rick Fincher <rnf@> wrote:
> > > >
> > > > Hi,
> > > >
> > > > You still need the resource-ref in WEBB.xml. The context stuff
> just
> > > > sets up the Tomcat server. The WEB.xml stuff sets up your web
> app to
> > > > connect to the data source from the Tomcat server's context.
> > > >
> > > > It looks as though Tomcat is unable to load the driver. This
> doesn't
> > > > make sense if you are able to create the data source from the Admin
> > > > Tool, because Tomcat has to load the driver then or it can't create
> > > the
> > > > data source to begin with.
> > > >
> > > > Is the exception being thrown in the Ibatis code or when the Tomcat
> > > starts?
> > > >
> > > > Try starting with a clean log file directory, starting Tomcat with
> > your
> > > > data source, but without running the app. Check to see if you
> get an
> > > > error in the log. If not, it would indicate a problem in Ibatis.
> > > >
> > > > Also try starting a simple web app that just gets a connection
> > from the
> > > > Tomcat Data Source, no Ibatis or anything else, just get a
> connection.
> > > >
> > > > A JSP wth the following is an example:
> > > >
> > > > // Get a connection to the database from the dataSource.
> > > > DataSource ds=null;
> > > > Connection connRSFind=null;
> > > >
> > > > try
> > > > {
> > > > Context ctx = new InitialContext();
> > > >
> > > > if(ctx == null )
> > > > throw new Exception("Boom - No Context");
> > > >
> > > > ds =
> (DataSource)ctx.lookup("java:comp/env/jdbc/link_to_sg2_bbdd");
> > > >
> > > > try
> > > > {
> > > > connRSFind = ds.getConnection();
> > > > }
> > > > catch (SQLException e)
> > > > {
> > > > System.out.println("getting new data source connection
> failed!
> > > > Error: "+e+"\n");
> > > > }
> > > >
> > > > }
> > > > catch (Exception e)
> > > > {
> > > > System.out.println("Could Not get data source, error: "+e+"\n");
> > > > }
> > > >
> > > >
> > > > If that works, it would indicate a problem with the Ibatis setup.
> > > >
> > > > If you get erors with a smple connection, post the entire stack
> > > trace so
> > > > we can narrow down the problem.
> > > >
> > > > Rick
> > > >
> > > > grndeveloper wrote:
> > > >
> > > > > Hello Rick,
> > > > >
> > > > > I think I have implemented your solution, but I get the same
> > mistake.
> > > > >
> > > > > I have created a Datasource from Tomcat Administration, and I have
> > > > > not modified it manually. Now it looks like:
> > > > >
> > > > > <Resource
> > > > > name="sg2_bbdd"
> > > > > type="javax.sql.DataSource"
> > > > > password="masterkey"
> > > > > driverClassName="org.firebirdsql.jdbc.FBDriver"
> > > > > maxIdle="2"
> > > > > maxWait="5000"
> > > > > validationQuery="select cast(1 as integer) from rdb$database"
> > > > > username="sysdba"
> > > > > url="jdbc:firebirdsql:192.168.2.2/3050:home/sg2/sg2JAVA.fdb"
> > > > > maxActive="5"/>
> > > > >
> > > > > I have created a new file /META-INF/context.xml which generates
> > me the
> > > > > file /conf/Catalina/localhost/jaume1.xml , which looks like:
> > > > >
> > > > > <Context docBase="jaume1" path="/jaume1" >
> > > > > <ResourceLink name="link_to_sg2_bbdd"
> > > > > global="sg2_bbdd" type="javax.sql.DataSource"/>
> > > > > </Context>
> > > > >
> > > > > Besides that I also have this portion of code in the web.xml
> > file, but
> > > > > I guess it's not necessary.
> > > > >
> > > > > <resource-ref>
> > > > > <res-ref-name>jdbc/link_to_sg2_bbdd</res-ref-name>
> > > > > <res-type>javax.sql.DataSource</res-type>
> > > > > <res-auth>Container</res-auth>
> > > > > <res-sharing-scope>Shareable</res-sharing-scope>
> > > > > </resource-ref>
> > > > >
> > > > > Is there anything else, that I am missing?
> > > > >
> > > > > Thanks in advance.
> > > > >
> > > > > --- In Firebird-Java@yahoogroups.com
> <mailto:Firebird-Java%40yahoogroups.com>
> > > > > <mailto:Firebird-Java%40yahoogroups.com>, Rick Fincher <rnf@>
> wrote:
> > > > > >
> > > > > > Hi,
> > > > > >
> > > > > > With Tomcat 5.5.x you should not be modifying the server.xml
> > > file. Go
> > > > > > into the tomcat administrator application and create your data
> > > sources
> > > > > > there. The administrator app has a link on the Tomcat splash
> page.
> > > > > >
> > > > > > In the <CATALINA_HOME>/conf/Catalina/localhost directory you
> > should
> > > > > see
> > > > > > an XML file with the name of your web app. If you do not, your
> > > context
> > > > > > is not set up properly.
> > > > > >
> > > > > > This file gets generated by Tomcat from your context.xml file
> > > that is
> > > > > > located in the META-INF folder of your web application.
> > > > > >
> > > > > > It should look something like this:
> > > > > >
> > > > > > <Context docBase="webAppName" path="/webAppName" >
> > > > > > <ResourceLink name="jdbc/yourDataSourceName"
> > > > > > global="jdbc/yourDataSourceName" type="javax.sql.DataSource"/>
> > > > > > </Context>
> > > > > >
> > > > > > There should be a resource link for each data source you want to
> > > use.
> > > > > >
> > > > > > By doing things this way, Tomcat can launch your web apps and
> > add or
> > > > > > drop data sources without restarting Tomcat and disrupting
> > everybody
> > > > > > elses web apps.
> > > > > >
> > > > > > Put your server.xml file back to the default and restart Tomcat.
> > > Then
> > > > > > go in the administrator to create your Data Sources. A good
> > > validation
> > > > > > query for Firebird is: SELECT CAST(1 AS INTEGER) FROM
> > > rdb$database. It
> > > > > > should always work.
> > > > > >
> > > > > > Check to be sure your context.xml file for your web app got
> > > created as
> > > > > > described above.
> > > > > >
> > > > > > Your username will have to be listed as an administrator in
> > whatever
> > > > > > login database scheme you are using (tomcat-users.xml, etc.) for
> > > you to
> > > > > > have access to the administrator application.
> > > > > >
> > > > > > Hope this helps!
> > > > > >
> > > > > > Rick
> > > > > >
> > > > > > grndeveloper wrote:
> > > > > >
> > > > > > > We are on Tomcat version 5.5.9 and we are using Jaybird
> > 2.1.0 with
> > > > > IBATIS.
> > > > > > > We have IBATIS working in a simple DATASOURCE configuration,
> > > and now
> > > > > > > we are trying to configure our application to use JNDI and
> > > connection
> > > > > > > pooling.
> > > > > > >
> > > > > > >
> > > > > > > We have made this modifications in the following files:
> > > > > > >
> > > > > > > >>>>server.xml >>>>>>>>
> > > > > > > ...
> > > > > > > <GlobalNamingResources>
> > > > > > > ...
> > > > > > > <Resource name="sg2_bbdd" auth="Container"
> > > > > > > type="javax.sql.DataSource"/>
> > > > > > > <ResourceParams name="sg2_bbdd">
> > > > > > > <parameter>
> > > > > > > <name>validationQuery</name>
> > > > > > > <value>select x_idio.idio_codi from x_idio</value>
> > > > > > > </parameter>
> > > > > > > <parameter>
> > > > > > > <name>maxWait</name>
> > > > > > > <value>5000</value>
> > > > > > > </parameter>
> > > > > > > <parameter>
> > > > > > > <name>maxActive</name>
> > > > > > > <value>10</value>
> > > > > > > </parameter>
> > > > > > > <parameter>
> > > > > > > <name>username</name>
> > > > > > > <value>sysdba</value>
> > > > > > > </parameter>
> > > > > > > <parameter>
> > > > > > > <name>password</name>
> > > > > > > <value>masterkey</value>
> > > > > > > </parameter>
> > > > > > > <parameter>
> > > > > > > <parameter>
> > > > > > > <name>url</name>
> > > > > > >
> > > > > > >
> > > <value>jdbc:firebirdsql:192.168.2.2/3050:home/sg2/sg2JAVA.fdb</value>
> > > > > > > </parameter>
> > > > > > > <parameter>
> > > > > > > <name>driverClassName</name>
> > > > > > > <value>org.firebirdsql.jdbc.FBDriver</value>
> > > > > > > </parameter>
> > > > > > > <parameter>
> > > > > > > <name>maxIdle</name>
> > > > > > > <value>5</value>
> > > > > > > </parameter>
> > > > > > > </ResourceParams>
> > > > > > > </GlobalNamingResources>
> > > > > > > ...
> > > > > > > <Host
> > > > > > > appBase="webapps"
> > > > > > > name="localhost">
> > > > > > > <DefaultContext>
> > > > > > > <ResourceLink
> > > > > > > global="sg2_bbdd"
> > > > > > > name="jdbc/link_to_sg2_bbdd"
> > > > > > > type="javax.sql.DataSource"/>
> > > > > > > </DefaultContext>
> > > > > > > </Host>
> > > > > > >
> > > > > > >
> > > > > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > > > >
> > > > > > > >>>web.xml >>>>>>>>
> > > > > > > .....
> > > > > > > <resource-ref>
> > > > > > > <res-ref-name>jdbc/link_to_sg2_bbdd</res-ref-name>
> > > > > > > <res-type>javax.sql.DataSource</res-type>
> > > > > > > <res-auth>Container</res-auth>
> > > > > > > <res-sharing-scope>Shareable</res-sharing-scope>
> > > > > > > </resource-ref>
> > > > > > > .....
> > > > > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > > > >
> > > > > > > >>>>sql-map-config.xml (Ibatis configuration
> > > > > > > file)>>>>>>>>>>>>>>>>>>>>>>>>
> > > > > > >
> > > > > > > ....
> > > > > > > <transactionManager type="JDBC">
> > > > > > > <dataSource type="JNDI">
> > > > > > > <property value="java:comp/env/jdbc/link_to_sg2_bbdd"
> > > > > > > name="DataSource"/>
> > > > > > > </dataSource>
> > > > > > > </transactionManager>
> > > > > > > ....
> > > > > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > > > >
> > > > > > > We also have put the jaybird-full-2.1.0.jar into the
> > > > > > > [CATALINA_HOME]/common/lib directory. In our application there
> > > is no
> > > > > > > reference to jaybird-full-2.1.0.jar
> > > > > > >
> > > > > > > With all this changes all we get from Tomcat logs is the
> > following
> > > > > > > error message:
> > > > > > > org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot
> > create JDBC
> > > > > > > driver of class '' for connect URL 'null'
> > > > > > > ...
> > > > > > > Caused by: java.sql.SQLException: No suitable driver"
> > > > > > > ...
> > > > > > >
> > > > > > > I think the problem we have has nothing to do with IBATIS, it
> > > is just
> > > > > > > we are doing something wrong with the driver or the tomcat
> > > > > configuration.
> > > > > > > Does anyone could give us some help?
> > > > > > >
> > > > > > > Thanks in advance.
> > > > > > >
> > > > > > > _
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > [Non-text portions of this message have been removed]
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > > [Non-text portions of this message have been removed]
> > > >
> > >
> >
>
> _
>
>




[Non-text portions of this message have been removed]