post the actual error you see with the new config

arturoguedez wrote:
Thanks for the help. I just tried it and it still does work.

Here is the exact content of my current server.xml and my context.xml
Server.xml:

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">

  <Listener className="org.apache.catalina.core.AprLifecycleListener"
SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
/>
  <Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />

    <Resource name="jdbc/workout_logger" auth="Container"
type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="user" password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/workout_logging?autoReconnect=true"/>

  </GlobalNamingResources>

  <Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      </Host>

    </Engine>
  </Service>
</Server>



Context.xml

<?xml version='1.0' encoding='utf-8'?>
<Context>

    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <ResourceLink name="jdbc/workout_logger" global="jdbc/workout_logger"/>

</Context>



I check and my db user "user" has full access to the DB it's trying to use.
Is it possible that I am missing a library or something in the classpath of
tomcat? I already have the mysql connector library ( I had my DB connections
working fine without datasources before, but I am trying to switch to using
datasources).

Thanks again

Arturo




Filip Hanik - Dev Lists wrote:
put this

 <Resource name="jdbc/workout_logger
" auth="Container"
   type="javax.sql.DataSource"
   maxActive="100" maxIdle="30" maxWait="10000"
   username="user" password="password"
   driverClassName="com.mysql.jdbc.Driver"
   url="jdbc:mysql://localhost:3306/database_name?autoReconnect=true"/>

inside the <GlobalNamingResources> in server.xml

Put this

 <ResourceLink name="jdbc/workout_logger" global="jdbc/workout_logger"/>

inside the <Context> elemement in conf/context.xml


and try again

Filip

arturoguedez wrote:
hey, sorry about that. The actual string I have in my app is
"workout_logger"
I just tried to replace my strings for "my_jdbc_name" for the posting. I
guess I forgot to rename the in the error.

other than that, do you see anything else wrong?



Filip Hanik - Dev Lists wrote:
here is the name you specify

<res-ref-name>jdbc/my_jdbc_name</res-ref-name>

and here is your error
Could not find datasource:jdbc/workout_logger

as you can see, somewhere you have configured the string workout_logger, and that one doesn't exist

Filip

arturoguedez wrote:
Hi!

I have been reading how to setup datasources for Tomcat 6.0.18 in
http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
and nothing I have done has allowed my web application to view the
datasource i have created.

Here are some snippets of my web.xml, and my server.xml
In the web.xml

<resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/my_jdbc_name</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
</resource-ref>

In server.xml
I have tried to place the following snip it anywhere I saw in the docs
it
could belong to (ei, in the GlobalNamingResources, inside the Host tag,
or
inside the Context tag in all possible locations (under
META-INF/context.xml, under
$CATALINA_BASE/conf/[engine]/[host]/[path].xml)
and I haven't been successful.

 <Resource name="jdbc/my_jdbc_name" auth="Container"
type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="user" password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/database_name?autoReconnect=true"/>


I am using Entity Managers to get my connections opened, here is the
snip
it
of my persistence.xml

       <persistence-unit name="my_pu_name"
transaction-type="RESOURCE_LOCAL">
                <non-jta-data-source>jdbc/my_jdbc_name</non-jta-data-source>
        </persistence-unit>

Here is what I get in my tomcat logs:

08/12/21 17:32:17 ERROR ceConnectionProvider: Could not find
datasource:
jdbc/workout_logger
javax.naming.NameNotFoundException: Name jdbc is not bound in this
Context
        at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
        at org.apache.naming.SelectorContext.lookup(SelectorContext.java:137)
        at javax.naming.InitialContext.lookup(InitialContext.java:392)
        at
org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)
        at
org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:137)
        at
org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)
        at
org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:89)
        at
org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2101)
        at
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1325)
        at
org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
        at
org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
        at
org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
        at
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
....



Does anybody know what I am doing wrong? Is there any way to check
which
resources Tomcat makes avaiable? I am having a really hard time
understanding what I am doing wrong.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org






---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to