On Thu, Aug 22, 2013 at 11:57 AM, Daniel Mikusa <dmik...@gopivotal.com>wrote:
> On Aug 22, 2013, at 11:31 AM, D C <dc12...@gmail.com> wrote: > > > On Thu, Aug 22, 2013 at 10:30 AM, Daniel Mikusa <dmik...@gopivotal.com > >wrote: > > > >> On Aug 22, 2013, at 9:21 AM, D C <dc12...@gmail.com> wrote: > >> > >>> Ok, here goes. grep -v '/opt/jdk' > >> > >> <snip> Removing some of the fluff. > >> > >>> Aug 21, 2013 5:08:03 PM org.apache.catalina.startup.HostConfig > >>> deployDescriptor > >>> INFO: Deploying configuration descriptor > >>> /opt/apache-tomcat-7.0.40/conf/Catalina/localhost/myApp.xml > >> > >> Ok, myApp is deployed here... > >> > > > > So far working as expected. > > > > > >> > >>> [Loaded org.springframework.web.SpringServletContainerInitializer from > >>> file:/web/webapps/myApp/WEB-INF/lib/spring-web-3.1.0.RELEASE.jar] > >>> [Loaded org.springframework.web.WebApplicationInitializer from > >>> file:/web/webapps/myApp/WEB-INF/lib/spring-web-3.1.0.RELEASE.jar] > >> > >> We can see that some of the Spring classes are being loaded from > >> "WEB-INF/lib". Were you expecting this? > >> > > > > > > This is an example of something our developers will need to clean up > before > > we release... But yes it was expected. > > > > > >>> [Loaded org.springframework.web.context.ContextLoader from > >>> file:/web/webapps/myApp/WEB-INF/lib/spring-web-3.1.0.RELEASE.jar] > >>> [Loaded org.springframework.web.context.ContextLoaderListener from > >>> file:/web/webapps/myApp/WEB-INF/lib/spring-web-3.1.0.RELEASE.jar] > >> > >> More Spring classes loaded from WEB-INF/ilb. Again, were you expecting > >> this? > >> > > > > Yup. > > > > > >> > >>> [Loaded com.myco.management.spring_utils.ContextLoaderListener from > >>> > >> > file:/web/webapps/myApp/WEB-INF/classes/com/myco/management/spring_utils/ContextLoaderListener.class] > >> > >> Looks like one of your custom classes is being loaded. No big deal. > >> > >>> Aug 21, 2013 5:08:07 PM org.apache.catalina.core.ContainerBase > >>> addChildInternal > >>> SEVERE: ContainerBase.addChild: start: > >> > >> App start fails... > >> > >>> Caused by: java.lang.ClassNotFoundException: > >>> org.springframework.core.io.Resource > >>> at > >> > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) > >>> at > >> > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) > >>> ... 25 more > >> > >> Missing class is org.springframework.core.io.Resource. Where is your > >> spring-core-3.1.0.RELEASE.jar file? > >> > > > > > > /web/lib/spring-core-3.1.0.RELEASE.jar > > > > > >> > >> Looking further... > >> > >>> at > >> > org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106) > >>> at > >> > org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:261) > >>> at > >> > org.apache.catalina.startup.WebAnnotationSet.loadApplicationListenerAnnotations(WebAnnotationSet.java:90) > >>> at > >> > org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65) > >>> at > >> > org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405) > >>> at > >> > org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881) > >>> at > >> > org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369) > >>> at > >> > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) > >>> at > >> > org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) > >>> at > >> > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5269) > >>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > >> > >> The stack trace seems to indicate that this error occurred while the > >> container was scanning for annotations. Is your application making use > of > >> Spring's WebApplicationInitializer functionality? If not, you might > want > >> to disable it and see if the error goes away. > >> > > > > Sorry I don't know. > > Try disabling it and see what happens. > > Edit "conf/catalina.properties" and set > "org.apache.catalina.startup.ContextConfig.jarsToSkip" to "spring-*.jar". > That should instruct Tomcat to skip processing the Spring jar files for > Servlet 3.0 pluggability features like web fragments, annotations & SCIs. > > > We just tried adding every jar file in /web/lib/ to the class path > > What do you mean by this? How did you add them to the class path? Did > you copy them into WEB-INF/lib? > No the environment variable in setenv.sh CLASSPATH=........every jar > > > and that seemed to work out, so this brings me back to whats wrong with > > common.loader? > > > > > common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,/web/lib,/web/lib/*.jar > > Syntax looks fine to me. As myself and others mentioned originally, > sharing classes with the common class loader causes lots of headaches. I > would say that you've found one here. > > A suggestion for debugging further, remove the "-verbose" JVM argument and > set the log level for org.apache.catalina.loader.WebappClassLoader to FINE. > The WebappClassLoader has some debugging information that it should write > to the logs. This could give us further clues as to what is happening. > > Dan > I've removed -verbose, and added that org.apache.catalina.loader.WebappClassLoader = FINE in logging.properties. Nothing new in the log. > > > > > > > > > > >> Dan > >> > >>> > >>> > >>> On Thu, Aug 22, 2013 at 8:58 AM, Daniel Mikusa <dmik...@gopivotal.com > >>> wrote: > >>> > >>>> On Aug 22, 2013, at 8:38 AM, D C <dc12...@gmail.com> wrote: > >>>> > >>>>> [tomcat@test05 logs]# grep "from file" catalina.out | sed 's/.*from > >>>>> file//g' | sed 's/\/lib\/.*/\/lib/g' | sort -u > >>>>> :/opt/apache-tomcat-7.0.40/bin/bootstrap.jar] > >>>>> :/opt/apache-tomcat-7.0.40/bin/tomcat-juli.jar] > >>>>> :/opt/apache-tomcat-7.0.40/lib > >>>>> :/opt/jdk1.7.0.21/jre/lib > >>>>> > >>>> > >> > :/web/webapps/myApp/WEB-INF/classes/com/myco/management/spring_utils/ContextLoaderListener.class] > >>>>> :/web/webapps/myApp/WEB-INF/lib > >>>> > >>>> Can you show the unaltered output? If you want to filter out stuff to > >>>> make it smaller, filter out any classes that were loaded from the JDK. > >>>> > >>>> Dan > >>>> > >>>>> > >>>>> > >>>>> > >>>>> Thanks, > >>>>> Dan > >>>>> > >>>>> > >>>>> On Thu, Aug 22, 2013 at 6:47 AM, Daniel Mikusa < > dmik...@gopivotal.com > >>>>> wrote: > >>>>> > >>>>>> On Aug 21, 2013, at 5:09 PM, D C <dc12...@gmail.com> wrote: > >>>>>> > >>>>>>> I added verbose, it does not appear to attempt to load anything > from > >>>>>>> /web/lib/ > >>>>>> > >>>>>> Ok. Where do you see it loading classes from? /WEB-INF/lib/*.jar? > >> Do > >>>>>> you see any classes listed that you would expect to be loaded from > >>>>>> /web/lib? Where are they being loaded from? > >>>>>> > >>>>>>> for permissions i verified that i could read the files as the > tomcat > >>>>>> user. > >>>>>> > >>>>>> Good > >>>>>> > >>>>>>> Thanks, > >>>>>>> Dan > >>>>>>> > >>>>>>> > >>>>>>> On Wed, Aug 21, 2013 at 5:01 PM, Daniel Mikusa < > >> dmik...@gopivotal.com > >>>>>>> wrote: > >>>>>>> > >>>>>>>> On Aug 21, 2013, at 4:48 PM, D C <dc12...@gmail.com> wrote: > >>>>>>>> > >>>>>>>>> So here is what I'm trying to achieve. > >>>>>>>>> > >>>>>>>>> 1. The tomcat install remains clean. I want to be able to change > >> the > >>>>>>>>> tomcat installation without messing with the app. > >>>>>>>>> 2. We want our applications to be decoupled from the libraries > >> which > >>>> it > >>>>>>>>> needs. ( i understand the pains you are referring to.. this > was a > >>>> bit > >>>>>>>> of > >>>>>>>>> debate, but this is what we want to do). > >>>>>>>>> 3. We want our engineering team to manage libs via RPM, not the > >>>>>>>> developers. > >>>>>>>>> > >>>>>>>>> tomcat is installed like so via RPM. > >>>>>>>>> /opt/tomcat-6.0.35 > >>>>>>>>> /opt/tomcat-7.0.39 > >>>>>>>>> /opt/tomcat-7.0.40 > >>>>>>>>> /tomcat symlinks to which ever /opt/tomcat-7.0.40 > >>>>>>>>> > >>>>>>>>> Context entries go in /tomcat/conf/Catalina/localhost/myApp.xml > >>>>>>>>> > >>>>>>>>> /web/webapps - holds our webapps. This much works perfectly. > >>>>>>>>> /web/conf/myApp - holds our application configs. > >>>>>>>>> /web/lib - holds any libs that are not part of the base tomcat > >>>>>>>>> installation. This is managed by rpm. > >>>>>>>>> > >>>>>>>>> If unpack a war file, and it has contents inside WEB_INF/lib, we > >>>> will > >>>>>>>>> consider that a broken build. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> Everything works, except that my libs are not loading.. I had > >>>> thought > >>>>>>>> that > >>>>>>>>> I could add /web/lib,/web/lib/*.jar to the common.loader. Am I > >>>>>> mistaken > >>>>>>>> by > >>>>>>>>> this? > >>>>>>>> > >>>>>>>> You can certainly add entries to common.loader and yours looks OK. > >>>>>>>> > >>>>>>>> Assuming the paths exist and permissions on those paths are > correct, > >>>> I'd > >>>>>>>> suggest adding the "-verbose" JVM argument to your bin/setenv.sh > >> file. > >>>>>>>> This will show you the location of classes that are being loaded. > >>>>>> Perhaps > >>>>>>>> it is loading classes from those locations and there is some other > >>>>>> reason > >>>>>>>> you are getting the ClassNotFoundException. > >>>>>>>> > >>>>>>>> Dan > >>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> Thanks, > >>>>>>>>> Dan > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> On Wed, Aug 21, 2013 at 4:27 PM, Daniel Mikusa < > >>>> dmik...@gopivotal.com > >>>>>>>>> wrote: > >>>>>>>>> > >>>>>>>>>> On Aug 21, 2013, at 4:09 PM, David kerber <dcker...@verizon.net > > > >>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>>> Basically you're trying to defeat the way the system is > designed > >> to > >>>>>>>>>> work. Don't do that… > >>>>>>>>>> > >>>>>>>>>> +1 Don't do what you've described unless you have a very good > >>>> reason. > >>>>>>>> It > >>>>>>>>>> will cause you many headaches. > >>>>>>>>>> > >>>>>>>>>> Keep all of your JAR files in "WEB-INF/lib", with the exception > of > >>>>>> JDBC > >>>>>>>>>> drivers. Put those in "$CATALINA_BASE/lib". > >>>>>>>>>> > >>>>>>>>>> Dan > >>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> On 8/21/2013 3:58 PM, D C wrote: > >>>>>>>>>>>> Tomcat 7.0.40 > >>>>>>>>>>>> CentOS 6.3 > >>>>>>>>>>>> Java 1.7.0_21 > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> I am trying to move all libraries out of my webapps directory, > >> and > >>>>>>>> into > >>>>>>>>>> a > >>>>>>>>>>>> common place. > >>>>>>>>>>>> > >>>>>>>>>>>> I have my libs that were bundled with tomcat in /tomcat/lib > (the > >>>>>>>>>> default), > >>>>>>>>>>>> and my extra libs i want to keep in /web/lib. > >>>>>>>>>>>> > >>>>>>>>>>>> I've updated /tomcat/conf/catalina.properties to use the > >>>> following: > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,/web/lib,/web/lib/*.jar > >>>>>>>>>>>> > >>>>>>>>>>>> I have my database resource located in > >>>>>>>>>>>> /tomcat/conf/Catalina/localhost/myApp.xml (probably not > >> relevant) > >>>>>>>>>>>> > >>>>>>>>>>>> When I start tomcat, I get the errors listed below. However > if > >> I > >>>>>> move > >>>>>>>>>>>> /web/lib/* to webapps/myApp/WEB_INF/lib/ it works fine. > >>>>>>>>>>>> > >>>>>>>>>>>> What am I missing here? > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> catalina.out snip. > >>>>>>>>>>>> SEVERE: ContainerBase.addChild: start: > >>>>>>>>>>>> org.apache.catalina.LifecycleException: Failed to start > >> component > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myApp]] > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>> > >>>> > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>> > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:657) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1636) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>> > >>>> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > >>>>>>>>>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:166) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > >>>>>>>>>>>> at java.lang.Thread.run(Thread.java:722) > >>>>>>>>>>>> Caused by: java.lang.NoClassDefFoundError: > >>>>>>>>>>>> org/springframework/core/io/Resource > >>>>>>>>>>>> at java.lang.Class.getDeclaredFields0(Native Method) > >>>>>>>>>>>> at > java.lang.Class.privateGetDeclaredFields(Class.java:2317) > >>>>>>>>>>>> at java.lang.Class.getDeclaredFields(Class.java:1762) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:261) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.startup.WebAnnotationSet.loadApplicationListenerAnnotations(WebAnnotationSet.java:90) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5269) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > >>>>>>>>>>>> ... 11 more > >>>>>>>>>>>> Caused by: java.lang.ClassNotFoundException: > >>>>>>>>>>>> org.springframework.core.io.Resource > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) > >>>>>>>>>>>> at > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >> > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) > >>>>>>>>>>>> ... 25 more > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> Thanks, > >>>>>>>>>>>> Dan > >>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>> --------------------------------------------------------------------- > >>>>>>>>>>> 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 > >>>>>>>> > >>>>>>>> > >>>>>> > >>>>>> > >>>>>> > --------------------------------------------------------------------- > >>>>>> 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 > >> > >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >