Solved

Datasource in Tomcat

Posted on 2006-07-13
15
889 Views
Last Modified: 2013-11-24
Can anyone help me create a datasource in Tomcat? I'm running version 5.5.9, the one included with Netbeans 5.0

I've followed http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html

Here's my server.xml

<Resource name="jdbc/publicommon" auth="Container"
    type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
    url="jdbc:oracle:thin:@peanut:1521:pad"
    username="***" password="***" maxActive="20" maxIdle="10"
    maxWait="-1"/>

My web.xml

      <resource-ref>
            <description>PCT Datasource</description>
            <res-ref-name>jdbc/publicommon</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
      </resource-ref>


Yet I still get

java.lang.ExceptionInInitializerError: Could not find datasource



Honestly, if I could line up the tomcat devs......... it's unreal trying to get this thing working.
0
Comment
Question by:cormierg1
  • 6
  • 5
  • 3
15 Comments
 
LVL 35

Expert Comment

by:girionis
ID: 17099009
How do you retrieve the datasource? Try changing the name to somethign that does not contain / and try again
0
 

Author Comment

by:cormierg1
ID: 17099081
It's with Hibernate.

String datasourceName = "jdbc/publicommon";
toolConfiguration.setProperty("hibernate.connection.datasource", datasourceName);


I've had no issues with the slash in Websphere, and all the online documents use one as well..
0
 
LVL 35

Expert Comment

by:girionis
ID: 17099153
Ok I see. Your config code looks file. What is the toolConfiguration?
0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
LVL 8

Expert Comment

by:colr__
ID: 17099155
Are you coding doing this manually? Netbeans will generate all the code you need to make the connection, if thats any use. As long as you have the datasource listed in the runtime panel, then right click in your source code and select 'use datasource' or something like that.
0
 

Author Comment

by:cormierg1
ID: 17099160
Yes, I am coding all of this manually.
0
 
LVL 8

Expert Comment

by:colr__
ID: 17099190
Could you try doing it via netbeans and check the code it produces? Its quite concise, so its a good starting point to have a working version. In future projects, youll find it a lot easier using netbeans to do this kind of plumbing for you anyway. When I started with this kind of stuff I found myself banging my head against my desk so often, because I couldnt get the 'simple' examples to work. In the end I started using the automated tools via the IDE I was using - the time I spent banging my head made me understand enough about the whole process in general though to go in and make changes to the XML etc.
0
 

Author Comment

by:cormierg1
ID: 17099200
How do I do this?

Under runtime I've added my Oracle driver, and added a database to my database tab but I see no option to include it as a datasource.
0
 

Author Comment

by:cormierg1
ID: 17099357
I might be one step closer...


Caused by: java.sql.SQLException: No suitable driver
        at java.sql.DriverManager.getDriver(DriverManager.java:243)
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773)
        ... 26 more


Where do I put my ojdbc14.jar? I tried

netbeans/enterprise2/jakarta-tomcat-5.5.9/common/lib
and
netbeans/enterprise2/jakarta-tomcat-5.5.9/server/lib

but it still doesn't pick it up?
0
 
LVL 35

Expert Comment

by:girionis
ID: 17099519
Try a different driver. The ojdbc is probably for the odbc bridge.
0
 

Author Comment

by:cormierg1
ID: 17099570
No, ojdbc14.jar is the Oracle JDBC driver.

ojdbc14.jar
Classes for use with JDK 1.4. It contains the JDBC driver
classes, except classes for NLS support in Oracle Object and
Collection types.
0
 
LVL 35

Expert Comment

by:girionis
ID: 17099603
Then the driver url is wrong. Are you sure you can connect with this form of url: jdbc:oracle:thin:@peanut:1521:pad ?
0
 

Author Comment

by:cormierg1
ID: 17099798
Yes. This is the same connection URL my Websphere datasource uses and it works perfectly.
0
 
LVL 35

Expert Comment

by:girionis
ID: 17099864
Try to register the driver: Class.forName("oracle.jdbc.OracleDriver"); if you have access to the initialization code.
0
 
LVL 8

Accepted Solution

by:
colr__ earned 75 total points
ID: 17099865
With your driver and database visible in the runtime tab on Netbeans, right click somewhere in your code and select 'Enterprise resopurces > Use database'. This will propbably only work in a sertvlet or EJB, as you shouldnt really be using databases from JSPs (although you can use the same code you use in a servlet once Netbeans has generated it.
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
This video teaches viewers about errors in exception handling.

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question