Try changing the <jndi-name> element in jrun-resources.xml from this:

<jndi-name>myDatasource</jndi-name>

to this:

<jndi-name>jdbc/myDatasource</jndi-name>

If that doesn't work, try the following code to be sure the data source can be located in the same manner as JSTL:

Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/myDatasource");

It looks like JRun 4 implements some sort of "shorthand" for JNDI lookups that might conflict with what JSTL is trying to do. I haven't used JRun before, so I could be way off...

Dipak Bhandari wrote:
Hi
I've not been able to make my web application use JNDI dataSource name with JSTL 1.0 on JRUN 4. However, when I use jdbc url instead of JNDI name the database connection is established. Please find below the relevant entries in web.xml and jrun-resources.xml along with the error message thrown by JRUN 4.


web.xml entries:

<context-param>
   <param-name>
     javax.servlet.jsp.jstl.sql.dataSource
   </param-name>
   <param-value>
    jdbc/myDatasource
   </param-value>
  </context-param>

jrun-resources.xml entries:

<data-source>
   <dbname>myDatasource</dbname>
   <driver>oracle.jdbc.driver.OracleDriver</driver>
   <url>jdbc:oracle:thin:@host:1521:sid</url>
   <username>username</username>
   <password>password</password>
   <encrypted>true</encrypted>
   <encryption-class>jrun.security.JRunCrypterForTwofish</encryption-class>
   <native-results>true</native-results>
   <remove-on-exceptions>true</remove-on-exceptions>
   <pool-statements>true</pool-statements>
   <initial-connections>1</initial-connections>
   <connection-timeout>1200</connection-timeout>
   <transaction-timeout>20</transaction-timeout>
   <cache-enabled>false</cache-enabled>
   <cache-size>5</cache-size>
   <cache-refresh-interval>30</cache-refresh-interval>
   <jndi-name>myDatasource</jndi-name>
   <poolname>Pool</poolname>
   <minimum-size>0</minimum-size>
   <maximum-size>2147483647</maximum-size>
   <user-timeout>20</user-timeout>
   <skimmer-frequency>420</skimmer-frequency>
   <shrink-by>5</shrink-by>
   <maximum-soft>true</maximum-soft>
   <debugging>false</debugging>
   <disable-pooling>false</disable-pooling>
   <description />
   <isolation-level>READ_COMMITTED</isolation-level>
 </data-source>

The error thrown is:

javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "No suitable driver"
at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.getConnection(QueryTagSupport.java:309)


at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doStartTag(QueryTagSupport.java:192)

at org.apache.taglibs.standard.tag.el.sql.QueryTag.doStartTag(QueryTag.java:125)

at jrun__test2ejsp9._jspService(jrun__test2ejsp9.java:117)
at jrun.jsp.runtime.HttpJSPServlet.service(HttpJSPServlet.java:43)
at jrun.jsp.JSPServlet.service(JSPServlet.java:119)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:252)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:527)
at jrun.servlet.http.WebService.invokeRunnable(WebService.java:168)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:451)


    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)


however, the database connection is established if in my deployment descriptor I replace
<param-value>
jdbc/myDatasource
</param-value>
with
<param-value>
jdbc:oracle:thin:@host:1521:SID,oracle.jdbc.driver.OracleDriver,user,password


   </param-value>

I'd appreciate any help to find a solution to use JNDI name on JRUN4.

Much appreciated,
Dipak Bhandari
[EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- Kris Schneider <mailto:[EMAIL PROTECTED]> D.O.Tech <http://www.dotech.com/>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to