tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From I D B Major <im5...@compsci.bristol.ac.uk>
Subject Re: Problem accessing two McKoi databases from Tomcat
Date Mon, 26 Jun 2006 14:57:39 GMT
Hi again,

Having renamed both the context-params I get the following error

org.apache.jasper.JasperException: Unable to get connection, DataSource invalid: "java.lang.NullPointerException"


Which sort of implies that the default name of 
'javax.servlet.jsp.jstl.sql.dataSource'  must be used once. However if I 
include it for one context-param and try to access both (say I use 
'javax.sql.dataSource' for the other) then the error message reverts to 
the java.sql.SQLException: No suitable driver (which is at least 
different from where I was before I specified the dataSource attribute 
in the <sql > tags.

This leaves me still unable to access the second database.

any further suggestions will be very welcome!

Iain




I D B Major wrote:
> Hi Brian,
>
> many thanks for the suggestions, I'm sure I'm now close, but I'm not 
> quite out of the trees yet. I have looked up the spec and followed 
> your suggestion to specify the datasource and I have changed one of 
> the context-params to simply dataSource. This means I now no longer 
> get the same error message but instead I get an error message at the 
> point where I call ShowTest (which is the context-param I changed) 
> which has the root cause;
>
> javax.servlet.ServletException: Unable to get connection, DataSource 
> invalid: "java.sql.SQLException: No suitable driver"
>
> I'm not sure why this is. If you can see it please let me know.
>
> Once again many thanks,
>
> Iain.
>
>
>
> Brian Buchanan wrote:
>
> As I understand your problem, you have two JDBC Datasources setup,
> jdbc/mydb and jdbc/curzon, and you are using JSTL which means to me that
> your JSP pages have <sql:...> tags in them.
>
> I think you are just missing the fact that the <sql:> tags *default* to
> the JDBC connection as specified by the context param
> javax.servlet.jsp.jstl.sql.dataSource.  That's only the DEFAULT value.
> You can override the JDBC source in the tag:
>
> You need the JSTL specification from here:
> http://java.sun.com/products/jsp/jstl/index.jsp
>
> and checkout page 121.
>
> In short: specify dataSource attribute to override the default.
>
> Finally, you should only define the value for the context-param
> 'javax.servlet.jsp.jstl.sql.dataSource' once in your web.xml.  It's only
> setting the default for the context so having the second is only
> overriding the first. (or the otherway around)
>
> sample.jsp (untested)
> ----------
> <%@ page language='java'%>
> <%@ taglib prefix='sql' uri='http://java.sun.com/jsp/jstl/sql' %>
> <%@ taglib prefix='c'   uri='http://java.sun.com/jsp/jstl/core' %>
> <sql:query var='testmydb' dataSource='jdbc/mydb'>
> select * from Film
> </sql:query>
> <sql:query var='testcurzon' dataSource='jdbc/curzon'>
> select * from Film
> </sql:query>
> ... etc.
>
>
> I HTH.
>
> ._. Brian
>
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
>> -----Original Message-----
>> From: I D B Major <im5033@compsci.bristol.ac.uk>
>> Date: Mon, 26 Jun 2006 09:44:37 +0100
>>
>>  
>>> Hi all,
>>>
>>> please can someone confirm whether I need to clarify anything in my 
>>> question or take a different approach since I have had no replies and
>>> am anxious to make sure I am doing all I can to seek help in the 
>>> correct way. Please correct me if my approach is wrong!
>>>
>>> many thanks
>>>
>>>
>>> Iain
>>>
>>>
>>> I D B Major wrote:
>>>    
>>>> Hi
>>>>
>>>> I am a student trying to set up a project using JSP with JSTL 
>>>> custom tags to provide dynamic pages to allow a web-based ticketing 
>>>> system for independent cinemas. I am at the early stages of testing 
>>>> that I can use the technologies. I have installed and configured 
>>>> Tomcat to allow password protection to the site and I have embedded 
>>>> a McKoi database which I can access and use to do insert, update 
>>>> and delete queries using a test JSP page which has customised JSTL 
>>>> tags that are
>>>> used to run the SQL query on the database.
>>>>
>>>> I am now trying to display data from two separate databases. I can
>>>>       
>>> get    
>>>> each to display separately but not both at once. My issues seem to be
>>>> around the details held in web.xml which are as follows;
>>>>
>>>>    <context-param>
>>>>        <param-name>javax.servlet.jsp.jstl.sql.dataSource</param-name>
>>>>        <param-value>jdbc/mydb</param-value>
>>>>    </context-param>
>>>>      <resource-ref>
>>>>        <description>DB Connection</description>
>>>>        <res-ref-name>jdbc/mydb</res-ref-name>
>>>>        <res-type>javax.sql.DataSource</res-type>
>>>>        <res-auth>Container</res-auth>
>>>>    </resource-ref>
>>>>      <context-param>
>>>>        <param-name>javax.servlet.jsp.jstl.sql.dataSource</param-name>
>>>>        <param-value>jdbc/curzon</param-value>
>>>>    </context-param>
>>>>      <resource-ref>
>>>>        <description>DB Connection</description>
>>>>        <res-ref-name>jdbc/curzon</res-ref-name>
>>>>        <res-type>javax.sql.DataSource</res-type>
>>>>        <res-auth>Container</res-auth>
>>>>    </resource-ref>
>>>>
>>>> If I change the name of either of the <param-name> then the other
>>>>       
>>> will    
>>>> work and allow database access to that database (ie <Resource>
>>>>       
>>> details    
>>>> in server.xml are correctly recorded) but the one which is altered is
>>>> not available so that Tomcat displays an error message to say the 
>>>> table requested is not found;
>>>>
>>>> org.apache.jasper.JasperException: javax.servlet.jsp.JspException: 
>>>>      select * from Film
>>>>
>>>>  : Table 'APP.Film' was not found.
>>>>
>>>> I have googled and googled, read the apache website in all areas I
>>>>       
>>> can    
>>>> think of to look up and have asked my tutor for help. All without 
>>>> success. I have discovered that the <param-name> given above is a 
>>>> default so I tried adjusting the names (setting first one and then
>>>>       
>>> the    
>>>> other to javax.servlet.jsp.jstl.dataSource.other or  
>>>> javax.servlet.jsp.jstl..otherdataSource or other.dataSource) and even
>>>> removing the <context-param> altogether but none of these work.
>>>>
>>>> Please can someone point me in the right direction for how to find
>>>>       
>>> out    
>>>> what the <param-name> needs to be set to in order to allow two 
>>>> databases to be accessed at once?
>>>>
>>>> many thanks,
>>>>
>>>> Iain M
>>>>
>>>>       
>
>


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message