There should be away around this type of issue.  I believe Tomcat already
actively avoids loading java, javax, org.xml, org.w3c.dom, org.apache.xerces
packages from WEB-INF/lib (I hope my memory isn't failing me here).  Given
this, maybe Tomcat should "endorse" certain core libraries so that they won't
be accidentally loaded from WEB-INF/lib, thus avoiding this issue altogether?

Jake

Quoting Ken Hall <[EMAIL PROTECTED]>:

> I've been trying out many different avenues to make this work and
> finally found the following bug, hopefully this will save other people
> some time:
>
>
>
> http://www.mail-archive.com/[email protected]/msg64410.html
>
>
>
> which says:
>
>
>
> >And finally i find the solution,that is to remove all Naming-*.jar out
>
> >from /%myapp_home%/WEB-INF/lib.I firmly think there's some disorder
> with
>
> >tomcat classloader.In other words,ClassLoader may not check which class
> to >be
>
> >loader first and which to be loaded second and which have already be
> loaded!
>
>
>
> -Ken
>
>
>
> ________________________________
>
> From: Ken Hall
> Sent: Thursday, December 16, 2004 3:41 PM
> To: '[EMAIL PROTECTED]'
> Subject: tomcat 5.5 and jndi context naming error
>
>
>
> Since downloading the new version of Tomcat 5.5.4, I have been
> experiencing problems with jndi resources within my web app. I am
> porting over from an existing server where that resource is working. The
> error is listed at the bottom.
>
>
>
> I saw in the release notes that naming-common.jar (JNDI Context
> implementation) is one of the required files but it does not appear to
> be included in the download. When I include it from a previous release,
> it appears to not like it. When I leave it out, it can not find the jndi
> context either.
>
> java.lang.NoSuchMethodError:
> org.apache.naming.NamingContextBindingsEnumeration.
> <init>(Ljava/util/Iterator;)V
>         at
> org.apache.naming.resources.FileDirContext.listBindings(FileDirContex
> t.java:335)
>         at
> org.apache.naming.resources.ProxyDirContext.listBindings(ProxyDirCont
> ext.java:515)
>         at
> org.apache.catalina.util.ExtensionValidator.validateApplication(Exten
> sionValidator.java:178)
>         at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:3
> 934)
>
>
> Here is my set up. Any help is greatly appreciated. I can't do anything
> with this release till this is solved. Thanks!
>
> -Ken Hall
>
>
>
> According to the docs, the preferred method is not messing with the
> server.xml but creating an "application.xml". I've tried both name value
> pairs and resource parameters. This is done and placed in the
> conf\Catalina\localhost directory:
>
>
>
> <?xml version='1.0' encoding='utf-8'?>
>
> <Context docBase="c:/jakarta-tomcat-5.5/webapps/myapp" path="/myapp"
> workDir="work\Catalina\localhost\myapp">
>
>     <Resource auth="Container" name="jdbc/myapp"
> type="javax.sql.DataSource"/>
>
>     <ResourceParams name="jdbc/myapp">
>
>       <parameter>
>
>         <name>maxWait</name>
>
>         <value>5000</value>
>
>       </parameter>
>
>       <parameter>
>
>         <name>maxActive</name>
>
>         <value>6</value>
>
>       </parameter>
>
>       <parameter>
>
>         <name>username</name>
>
>         <value>xx</value>
>
>       </parameter>
>
>       <parameter>
>
>         <name>removeAbandoned</name>
>
>         <value>true</value>
>
>       </parameter>
>
>       <parameter>
>
>         <name>password</name>
>
>         <value>xx</value>
>
>       </parameter>
>
>       <parameter>
>
>         <name>url</name>
>
>         <value>jdbc:jtds:sqlserver://server:1433/myapp</value>
>
>       </parameter>
>
>       <parameter>
>
>         <name>driverClassName</name>
>
>         <value>net.sourceforge.jtds.jdbc.Driver</value>
>
>       </parameter>
>
>       <parameter>
>
>         <name>maxIdle</name>
>
>         <value>2</value>
>
>       </parameter>
>
>     </ResourceParams>
>
> </Context>
>
>
>
>
>
> In my app's web.xml I have:
>
>
>
>             </servlet-mapping>
>
>
>
>               <resource-ref>
>
>                 <res-ref-name>jdbc/myapp</res-ref-name>
>
>                 <res-type>javax.sql.DataSource</res-type>
>
>                 <res-auth>Container</res-auth>
>
>               </resource-ref>
>
>
>
>             <welcome-file-list>
>
>
>
>
>
>
>
> My application is referencing the context like this:
>
> InitialContext initContext = new javax.naming.InitialContext();
>
> Context envContext=(Context)initContext.lookup("java:comp/env");
>
> DataSource ds = (DataSource)envContext.lookup("jdbc/myapp");
>
>
>
>
>
>
>
> //Error upon calling context
>
> SEVERE: Null component
> Catalina:type=DataSource,path=/myapp,host=localhost,class=javax.sql.Data
> Source,name="jdbc/myapp"
>
> Unable to connect to myapp database. Class Not Found.Name java:comp is
> not bound in this Context
>
> javax.naming.NameNotFoundException: Name java:comp is not bound in this
> Context
>
>       at org.apache.naming.NamingContext.lookup(NamingContext.java:768)
>
>       at org.apache.naming.NamingContext.lookup(NamingContext.java:151)
>
>       at javax.naming.InitialContext.lookup(InitialContext.java:351)
>
>       at my.load.servlet
>
>       at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.jav
> a:1053)
>
>       at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:886)
>
>       at
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.j
> ava:3817)
>
>       at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4079
> )
>
>       at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.ja
> va:755)
>
>       at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
>
>       at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
>
>       at
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:777)
>
>       at
> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:672)
>
>       at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)
>
>       at
> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1079)
>
>       at
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:31
> 0)
>
>       at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSu
> pport.java:119)
>
>       at
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1011)
>
>       at
> org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
>
>       at
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1003)
>
>       at
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:437)
>
>       at
> org.apache.catalina.core.StandardService.start(StandardService.java:450)
>
>       at
> org.apache.catalina.core.StandardServer.start(StandardServer.java:2010)
>
>       at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
>
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
>       at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:39)
>
>       at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:25)
>
>       at java.lang.reflect.Method.invoke(Method.java:585)
>
>       at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
>
>       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
>
>
>
>




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

Reply via email to