Patrick, Thanks *SO MUCH* for the response. I tried your recomendation using Tomcat 5.5 and it worked as you stated in your inline post.

I was pulling my hair out trying to replicate my success with JBuilder 2005.

I finally figured it out:

I followed your directions below with 1 exception. In JBuilder, the IDE ignores the tomcat config, as near as I can tell, and generates it's own server.xml file in the project directory called "server8080.xml". Server8080.xml creates the context for the webapp. For whatever reason, it ignores the META-INF/context.xml. So, by putting the <Resource> in the server8080.xml and following the rest of the information in your inline post, I *FINALLY* am able to use a datasource from my classes and JSP's within JBuilder.

This has had me stumped for a few days......It feels good to solve the problem. I know this isn't the BEST solution, but I can continue to develop my app.....

If someone has a better workaround for JBuilder, PLEASE SHARE!

Here's my file info. I hope it helps someone else out.

Thanks again!
-Aaron

*********************************************************************
** server8080.xml found in ..../jbprojects/myproject/Tomcat/conf/server8080.xml ** this is autogenerated by jbuilder. you can modify this so jbuilder doesnt over write it
*********************************************************************
<?xml version="1.0" encoding="UTF-8"?>
<Server debug="0" port="8081" shutdown="SHUTDOWN">
 <Service name="Catalina">
   <Connector acceptCount="10" connectionTimeout="60000"
         debug="0" maxThreads="75" minSpareThreads="5" port="8080"/>
   <Engine debug="0" defaultHost="localhost" name="Catalina">
     <Host appBase="/Users/aaronhackney/jbproject/untitled5/Tomcat/webapps"
autoDeploy="false" debug="0" deployXML="false" name="localhost" unpackWARs="false"> <Context debug="0" docBase="/Users/aaronhackney/jbproject/untitled5/WebModule1"
          path="/WebModule1" reloadable="true"
workDir="/Users/aaronhackney/jbproject/untitled5/Tomcat/work/WebModule1">
         <Resource
           name ="jdbc/helloworld"
           auth="Container"
           type="javax.sql.DataSource"
           driverClassName="com.mysql.jdbc.Driver"
           url="jdbc:mysql://127.0.0.1/mydatabase"
           maxActive="100"
           maxIdle="30"
           maxWait="10000"
           username="user"
password="mypassword" />
</Context>
     </Host>
   </Engine>
 </Service>
</Server>

*********************************************************************
** web.xml found in ..../jbproject/untitled5/WebModule1/WEB-INF/web.xml
*********************************************************************
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLo cation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"; version="2.4">
 <display-name>WebModule1</display-name>
 <resource-ref>
   <description>Resource reference to a factory for java.sql.Connection
   instances that may be used for talking to a particular
   database that is configured in the server.xml file.</description>
   <res-ref-name>jdbc/helloworld</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>
 </resource-ref>
 <servlet>
<description>Added by JBuilder to compile JSPs with debug info</description>
   <servlet-name>debugjsp</servlet-name>
   <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
   <init-param>
     <param-name>classdebuginfo</param-name>
     <param-value>true</param-value>
   </init-param>
   <load-on-startup>3</load-on-startup>
 </servlet>
 <servlet-mapping>
   <servlet-name>debugjsp</servlet-name>
   <url-pattern>*.jsp</url-pattern>
 </servlet-mapping>
</web-app>


Patrick Thomas wrote:

Damn, he found it. We try to hide those HOW-TOs really well. ;)

Aaron,
Yeah, that's the right place to look; sorry I didn't include that in
the first reply, but I didn't want to muddy the waters if that wasn't
your real issue. I'm inlining an email that I sent to the list a few
months ago. It's not on the exact same issue, but the example may help
you get some clarity.

Good Luck,
Patrick


---- Forwarded Message ----
From: P T <[EMAIL PROTECTED]>
Reply-To: P T <[EMAIL PROTECTED]>
To: Tomcat Users List <[email protected]>
Date: Apr 8, 2005 1:31 PM
Subject: Re: Add Context Path, Tomcat 5.5.7

Scott,

I feel your pain -- I just finished sorting out that whole thing
myself. One thing I'd definitely recommend doing is installing the
admin tool for tomcat 5 and using it to change something trivial in
your server.xml file. When it gets done making the change it strips
out all the comments as a side effect and makes the file *much*
cleaner and, in my opinion, more readable. As for your question:
if the resource is to be used for multiple applications, you could put
it in the server.xml... if not (and I'm going to presume that's the
case for you -- let me know if not) then you're much better off using
your application-specific WEB-INF\web.xml and META-INF\context.xml
files like so:


<your application docbase>\META-INF\context.xml would look something like:
<Context path="/Foo"
       docBase="C:/Foo"
       debug="1" reloadable="true">
<Resource
    auth="Container"
    name="jdbc/aNameForYourDBresource"
    type="javax.sql.DataSource"
    password="Foo"
    driverClassName="oracle.jdbc.driver.OracleDriver"
    maxIdle="3"
    maxWait="5000"
    username="Foo"
    url="jdbc:oracle:thin:@Foo:1521:Foo"
    maxActive="15"/>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>META-INF/context.xml</WatchedResource>
</Context>

and your <your application docbase>WEB-INF\web.xml would then
reference the resource defined in the context above (the res-ref-name
should match the resource name)....

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun.com/dtd/web-app_2_3.dtd";>

<web-app>

 <display-name>Your app's name</display-name>
    <description>
    Slices, dices and makes fresh canned spam!
 </description>

 <resource-ref>
    <description>Description of Datasource</description>
    <res-ref-name>jdbc/aNameForYourDBresource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
 </resource-ref>
</web-app>

It's helpful to think of the individual application context.xml files
being 'included' as <context> entries in the server.xml file (almost
like an @include, except implicit).

Hope that helps! Let me know if I can clarify anything.

Cheers,
Patrick Thomas

(PS - remember to install the jakarta commons and pooling jars
mentioned in the dbcp documentation.)


On 5/31/05, Aaron Hackney <[EMAIL PROTECTED]> wrote:
I think I may have actually found the answer to my own question....does
this look like the right path to go down?

http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-resources-howto.html

?

Thanks
-Aaron

Aaron Hackney wrote:

Thanks for the response Patrick. I'm probably going about this all wrong.

Simply put, I'm just trying to make a datasource available to my
application. Sounds sinple enough. I have found a lot of conflicting
information out there on the implementation.

I develop with JBuilder (good, bad or indifferent!) But
anyhow....where does one properly make a datasource for a tomcat
application available? I'm using Tomcat 5.0 (I could use 5.5 if I had
to).

Thanks in advance. I'm a bit blind and stubling around here and really
tried to research it on my own this weekend but to no avail.

-Aaron

Patrick Thomas wrote:

and if a context with the same name is defined in a webapp WEB-INF/xml
file which would "win" such a fight? I have a feeling my context
defined
in /localhost is being overwritten by the app. (I'm fighting with
JBuilder 2005 trying to get some JNDI naming stuff to work for my
datasources)

Ideas? Or am I waaaaay off?

I'm gonna go with "possibly way off" because you shouldn't be putting
the context name into web.xml (context.xml is okay, though not
required, but web.xml no... in fact, I don't think it'll even
acknowledge it there). Did you mean to say "META-INF/context.xml"? If
so, then we've got a meatier discussion; let us know.

Cheers,
Patrick

On 5/31/05, Aaron Hackney <[EMAIL PROTECTED]> wrote:


Hello. I'm hoping someone can help me with a context question.

If I define a context in an xml file in
/tomcathome/conf/catalina/localhost

and if a context with the same name is defined in a webapp WEB-INF/xml
file which would "win" such a fight? I have a feeling my context
defined
in /localhost is being overwritten by the app. (I'm fighting with
JBuilder 2005 trying to get some JNDI naming stuff to work for my
datasources)

Ideas? Or am I waaaaay off?

Thanks in advance.
-Aaron

--
************************************************
Aaron Hackney
MCP, MCSA, MCSE 2003/NT4, MCT,
Net+, A+, CCNA, CCDA, CCAI
[EMAIL PROTECTED]
http://www.aaronhackney.com
309-472-7033
************************************************


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



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



--
************************************************
Aaron Hackney
MCP, MCSA, MCSE 2003/NT4, MCT,
Net+, A+, CCNA, CCDA, CCAI
[EMAIL PROTECTED]
http://www.aaronhackney.com
309-472-7033
************************************************


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



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


--
************************************************
Aaron Hackney
MCP, MCSA, MCSE 2003/NT4, MCT,
Net+, A+, CCNA, CCDA, CCAI
[EMAIL PROTECTED]
http://www.aaronhackney.com
309-472-7033
************************************************


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

Reply via email to