RE: Classpath issue *only* when starting tomcat 6 as a service
Hi all, I finally managed to make it work with my multiple tomcat homes installations. I deleted the "lib" dir in tomcat instances, set-up waffle lib in the common tomcat lib dir, clean-up the services properties (i.e. classpath, to match tomcat default service configuration), removed "endorsed" dir. Thanks a bunch everybody for your responsiveness and dedication to solving issues of unknown people like me. I really appreciate ;-) Best regards, Patrick pguil...@genigraph.fr Téléphone : +33 (0)9 51 17 44 24 http://www.genigraph.fr Avant d'imprimer cet email et les pièces jointes, pensez à l'environnement. -Message d'origine- De : Mark Thomas [mailto:ma...@apache.org] Envoyé : jeudi 16 juin 2011 20:45 À : Tomcat Users List Objet : Re: Classpath issue *only* when starting tomcat 6 as a service On 16/06/2011 18:07, Patrick Guillot - Genigraph wrote: > Hi all, > > Back on this issue. I suspect I know what is happening. Waffle provides it's own implementation of Tomcat's Authenticator interface and does this by extending Tomcat's AuthenticatorBase. Therefore, the Authenticator Interface and the AuthenticatorBase class have to be visible to the class loader loading Waffle. If you place Waffle in the endorsed dir then it can't see the AuthenticatorBase (look at the class loader docs for Tomcat). The short version is Waffle has to be placed in Tomcat's lib directory. Mark - 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
RE: Classpath issue *only* when starting tomcat 6 as a service
Hi all, Back on this issue. I have a new machine as a sand-box. This is a brand-new machine. Nothing but the operating system was installed before I began (Microsoft Windows 2008 Server R2). Step 1: I Installed tomcat using the installer "apache-tomcat-6.0.29.exe"(including Tomcat service and native library). The service has been set-up automatically by the installer. I did no modification at all on the service set-up. So, I use the "out of the box" tomcat set-up. As a consequence, I haven't had to use "service.bat" since the installer did the job itself. I only had to check the box "service" in the component list of the installer. I put Waffle webapps in the "webapps" directory, and waffle libs in "endorsed". I have had to create the "endorsed" directory by myself. This directory is referenced in the service configuration automatically set-up by the tomcat installer (-Djava.endorsed.dirs=C:\Outils\Tomcat 6.0\endorsed). I'm still seeing the very same error : java.lang.NoClassDefFoundError: org/apache/catalina/authenticator/AuthenticatorBase Step 2: In uninstalled tomcat, and reinstall it using "apache-tomcat-6.0.29-windows-x64.zip". In other words, I just unzipped the archive in "c:\tomcat" directory. Then I: - put Waffle webapps in "webapps"; - create "C:\endorsed\" directory; - put Waffle libs in "C:\endorsed\"; - updated "startup.bat" to let it know about Java home (I could have set-up an env. variable, but...): set JAVA_HOME=C:\Outils\Java\jdk1.5.0_22 - started tomcat using "startup.bat". Still seeing the error : java.lang.NoClassDefFoundError: org/apache/catalina/authenticator/AuthenticatorBase Step 3: Reusing the same set-up as step 2, but put the waffle libs in tomcat's lib directory directly - not in endorsed dir. ==> fine : no more error! Step 4: Reinstalled Tomcat as a service with Waffle libs in Tomcat's lib directory. ==> fine : no more error! So really, it seems I have to put Waffle libs in tomcat lib directory to make it work. I really do not like this since as far as I know this is not a good practice. But obviously, I don't have any other choice, do I? I will now try to make this work on my multiple tomcat instances installation. Thanks all for your inputs. Kind regards, Patrick pguil...@genigraph.fr Téléphone : +33 (0)9 51 17 44 24 http://www.genigraph.fr Avant d'imprimer cet email et les pièces jointes, pensez à l'environnement. -Message d'origine- De : André Warnier [mailto:a...@ice-sa.com] Envoyé : vendredi 10 juin 2011 17:43 À : Tomcat Users List Objet : Re: Classpath issue *only* when starting tomcat 6 as a service > -Message d'origine- > De : Pid [mailto:p...@pidster.com] > Envoyé : vendredi 10 juin 2011 16:35 > À : Tomcat Users List > Objet : Re: Classpath issue *only* when starting tomcat 6 as a service > > On 10/06/2011 10:16, Patrick Guillot - Genigraph wrote: >> Right. >> I have used a script I made because I had several tomcat instances to >> set-up (2x8). Attached is the script I used. I'm using multiple >> catalina_base (one for each application). > > Please uninstall all Tomcat services. > Now install Tomcat using service.bat - just once. > > http://tomcat.apache.org/tomcat-6.0-doc/windows-service-howto.html > > > Does Tomcat work now? > > > p > > > > - > 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
RE: Classpath issue *only* when starting tomcat 6 as a service
Hi all, Thanks for your inputs. I tried starting Tomcat via local administrator account, but it does not start at all (no log file produce for tomcat and got error 1069), neither via the GUI nor via command line. I have asked my customer to set-up a new virtual machine to do what you suggest pid (we just cannot uninstall all existing tomcat install which are currently being used for test/validation purpose). I'll test this next week when the new environment will be ready and let you know. Thanks again. Have a nice week-end. Kind regards, Patrick -Message d'origine- De : Pid [mailto:p...@pidster.com] Envoyé : vendredi 10 juin 2011 16:35 À : Tomcat Users List Objet : Re: Classpath issue *only* when starting tomcat 6 as a service On 10/06/2011 10:16, Patrick Guillot - Genigraph wrote: > Right. > I have used a script I made because I had several tomcat instances to > set-up (2x8). Attached is the script I used. I'm using multiple > catalina_base (one for each application). Please uninstall all Tomcat services. Now install Tomcat using service.bat - just once. http://tomcat.apache.org/tomcat-6.0-doc/windows-service-howto.html Does Tomcat work now? p - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: Classpath issue *only* when starting tomcat 6 as a service
Hi Martin, It does start as administrator already: The tomcat service GUI used to start the service is executed via the "Run as administrator" contextual menu command. Unfortunately this does not solve the problem. Thanks. Regards, Patrick pguil...@genigraph.fr Téléphone : +33 (0)9 51 17 44 24 http://www.genigraph.fr Avant d'imprimer cet email et les pièces jointes, pensez à l'environnement. -Message d'origine- De : Martin Gainty [mailto:mgai...@hotmail.com] Envoyé : vendredi 10 juin 2011 13:24 À : Tomcat Users List Objet : RE: Classpath issue *only* when starting tomcat 6 as a service Just as Unix contains different configurations for each .profile and .bashrc you may have different (JVM and or CLASSPATH) configurations for each username in Windows Authentication Framework. from what i know Windows service has different capabilities depending on the authentication credentials you supply if you start your service as Administrator does the problem go away e.g? runas /u:administrator "net start Tomcat" Bon Chance, Martin __ Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni. From: pguil...@genigraph.fr To: users@tomcat.apache.org Subject: RE: Classpath issue *only* when starting tomcat 6 as a service Date: Fri, 10 Jun 2011 11:16:36 +0200 Hello, Right. I have used a script I made because I had several tomcat instances to set-up (2x8). Attached is the script I used. I'm using multiple catalina_base (one for each application). At first, the "Java Classpath:" field of the Tomcat Service GUI only contains : bootsrap.jar and tomcat-juli.jar Since it did not work, I add the following in PR_CLASSPATH env. variable which correspond to the "Java Options:" field of the Tomcat Service GUI contained : -Djava.class.path=D:\tomcat\lib\annotations-api.jar;D:\tomcat\lib\catalina-a nt.jar;D:\tomcat\lib\catalina-ha.jar;D:\tomcat\lib\catalina-tribes.jar;D:\to mcat\lib\catalina.jar;D:\tomcat\lib\el-api.jar;D:\tomcat\lib\jasper-el.jar;D :\tomcat\lib\jasper-jdt.jar;D:\tomcat\lib\jasper.jar;D:\tomcat\lib\jsp-api.j ar;D:\tomcat\lib\servlet-api.jar;D:\tomcat\lib\tomcat-coyote.jar;D:\tomcat\l ib\tomcat-dbcp.jar;D:\tomcat\lib\tomcat-i18n-es.jar;D:\tomcat\lib\tomcat-i18 n-fr.jar;D:\tomcat\lib\tomcat-i18n-ja.jar;D:\tomcat\lib\jna.jar;D:\tomcat\li b\platform.jar;D:\tomcat\lib\waffle-jna.jar;D:\tomcat\lib\commons-logging-1. 1.1.jar Being so desperate :-) I add all the jars to both "Java Classpath:" and "Java Options:". I just made a test after cleaning things up. This gives the following configuration : [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[0] -Dcatalina.home=D:\tomcat [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[1] -Dcatalina.base=D:\tomcat\instances\06_crlj [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[2] -Djava.endorsed.dirs=D:\tomcat\endorsed [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[3] -Djava.io.tmpdir=D:\tomcat\instances\06_crlj\temp [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[4] -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[5] -Djava.util.logging.config.file=D:\tomcat\instances\06_crlj\conf\logging.pro perties [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[6] -XX:MaxPermSize=256M [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[7] -Djava.class.path=D:\tomcat\bin\tomcat-juli.jar;D:\tomcat\bin\bootstrap.jar [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[8] vfprintf [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[9] -Xms256m [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[10] -Xmx512m [2011-06-10 10:46:03] [629 javajni.c] [debug] argv[0] = start As far as I understand, line 7 contains what is set-up in the "Java Classpath:" field of the Tomcat Service GUI. It looks fine now, does it ? I still get the same error. Thanks, Patrick -Message d'origine- De : Pid [mailto:p...@pidster.com] Envoyé : vendredi 10 juin 2011 10:45 À : Tomcat Users List Objet : Re: Classpath issue *only* when starting tomcat 6 as a service On 10/06/2011 09:38, Patrick Guillot - Genigraph wrote: > Hi everybody, > > > > Im driving mad with a classpath issue : > > > > My environment :
RE: Classpath issue *only* when starting tomcat 6 as a service
Hello, Right. I have used a script I made because I had several tomcat instances to set-up (2x8). Attached is the script I used. I'm using multiple catalina_base (one for each application). At first, the "Java Classpath:" field of the Tomcat Service GUI only contains : bootsrap.jar and tomcat-juli.jar Since it did not work, I add the following in PR_CLASSPATH env. variable which correspond to the "Java Options:" field of the Tomcat Service GUI contained : -Djava.class.path=D:\tomcat\lib\annotations-api.jar;D:\tomcat\lib\catalina-a nt.jar;D:\tomcat\lib\catalina-ha.jar;D:\tomcat\lib\catalina-tribes.jar;D:\to mcat\lib\catalina.jar;D:\tomcat\lib\el-api.jar;D:\tomcat\lib\jasper-el.jar;D :\tomcat\lib\jasper-jdt.jar;D:\tomcat\lib\jasper.jar;D:\tomcat\lib\jsp-api.j ar;D:\tomcat\lib\servlet-api.jar;D:\tomcat\lib\tomcat-coyote.jar;D:\tomcat\l ib\tomcat-dbcp.jar;D:\tomcat\lib\tomcat-i18n-es.jar;D:\tomcat\lib\tomcat-i18 n-fr.jar;D:\tomcat\lib\tomcat-i18n-ja.jar;D:\tomcat\lib\jna.jar;D:\tomcat\li b\platform.jar;D:\tomcat\lib\waffle-jna.jar;D:\tomcat\lib\commons-logging-1. 1.1.jar Being so desperate :-) I add all the jars to both "Java Classpath:" and "Java Options:". I just made a test after cleaning things up. This gives the following configuration : [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[0] -Dcatalina.home=D:\tomcat [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[1] -Dcatalina.base=D:\tomcat\instances\06_crlj [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[2] -Djava.endorsed.dirs=D:\tomcat\endorsed [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[3] -Djava.io.tmpdir=D:\tomcat\instances\06_crlj\temp [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[4] -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[5] -Djava.util.logging.config.file=D:\tomcat\instances\06_crlj\conf\logging.pro perties [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[6] -XX:MaxPermSize=256M [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[7] -Djava.class.path=D:\tomcat\bin\tomcat-juli.jar;D:\tomcat\bin\bootstrap.jar [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[8] vfprintf [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[9] -Xms256m [2011-06-10 10:46:03] [447 javajni.c] [debug] Jvm Option[10] -Xmx512m [2011-06-10 10:46:03] [629 javajni.c] [debug] argv[0] = start As far as I understand, line 7 contains what is set-up in the "Java Classpath:" field of the Tomcat Service GUI. It looks fine now, does it ? I still get the same error. Thanks, Patrick -Message d'origine- De : Pid [mailto:p...@pidster.com] Envoyé : vendredi 10 juin 2011 10:45 À : Tomcat Users List Objet : Re: Classpath issue *only* when starting tomcat 6 as a service On 10/06/2011 09:38, Patrick Guillot - Genigraph wrote: > Hi everybody, > > > > Im driving mad with a classpath issue : > > > > My environment : > > - Tomcat 6.0.29 > > - Windows Server 2008 R2 Standard 64 bits > > - JDK 1.5.0_22 > > > > My webapp is using Waffle (Windows Authentication Framework) > (http://waffle.codeplex.com/) to benefit from transparent authentication. > > > > It is working just fine when tomcat is started in console mode. But > console mode is not suitable for production use. > > Therefore, I set-up Tomcat 6 as a service > (http://tomcat.apache.org/tomcat-6.0-doc/windows-service-howto.html). > > > > In this mode, tomcat does not start properly and I get a classpath error : > > java.lang.NoClassDefFoundError: > org/apache/catalina/authenticator/AuthenticatorBase > > If not using Waffle, the service mode is working fine as well. > > AuthenticatorBase is used by Waffle. > > > > I found that this class is located catalina.jar. > > Catalina.jar is located in D:\tomcat\lib\ (catalina.home\lib). > > So, I do have the right jar and it contains the right class (which > again is found by tomcat when started in console mode). > > > > My guess was I had a service configuration error : I checked > everything and cant find any error which does not mean there is no > error ! ;-) > > Here is the service configuration logged by tomcat : > > > > Jvm Option[0] > -Djava.class.path=D:\tomcat\bin\tomcat-juli.jar;D:\tomcat\bin\bootstra > p.jar; > D:\tomcat\lib\annotations-api.jar;D:\tomcat\lib\catalina-ant.jar;D:\to > mcat\l > ib\catalina-ha.jar;D:\tomcat\lib\catalina-tribes.jar;D:\tomcat\lib\catalina. > jar;D:\tomcat\lib\el-api.jar;D:\tomcat\lib\jasper-el.jar;D:\tomcat\lib > \jaspe > r-jdt.jar;D:\tomcat\lib\jasper.jar;D:\tomcat\lib\jsp-api.jar;D:\tomcat > \lib\s > ervlet-api.jar
RE: Classpath issue *only* when starting tomcat 6 as a service
Hi everybody, Im driving mad with a classpath issue : My environment : - Tomcat 6.0.29 - Windows Server 2008 R2 Standard 64 bits - JDK 1.5.0_22 My webapp is using Waffle (Windows Authentication Framework) (http://waffle.codeplex.com/) to benefit from transparent authentication. It is working just fine when tomcat is started in console mode. But console mode is not suitable for production use. Therefore, I set-up Tomcat 6 as a service (http://tomcat.apache.org/tomcat-6.0-doc/windows-service-howto.html). In this mode, tomcat does not start properly and I get a classpath error : java.lang.NoClassDefFoundError: org/apache/catalina/authenticator/AuthenticatorBase If not using Waffle, the service mode is working fine as well. AuthenticatorBase is used by Waffle. I found that this class is located catalina.jar. Catalina.jar is located in D:\tomcat\lib\ (catalina.home\lib). So, I do have the right jar and it contains the right class (which again is found by tomcat when started in console mode). My guess was I had a service configuration error : I checked everything and cant find any error which does not mean there is no error ! ;-) Here is the service configuration logged by tomcat : Jvm Option[0] -Djava.class.path=D:\tomcat\bin\tomcat-juli.jar;D:\tomcat\bin\bootstrap.jar; D:\tomcat\lib\annotations-api.jar;D:\tomcat\lib\catalina-ant.jar;D:\tomcat\l ib\catalina-ha.jar;D:\tomcat\lib\catalina-tribes.jar;D:\tomcat\lib\catalina. jar;D:\tomcat\lib\el-api.jar;D:\tomcat\lib\jasper-el.jar;D:\tomcat\lib\jaspe r-jdt.jar;D:\tomcat\lib\jasper.jar;D:\tomcat\lib\jsp-api.jar;D:\tomcat\lib\s ervlet-api.jar;D:\tomcat\lib\tomcat-coyote.jar;D:\tomcat\lib\tomcat-dbcp.jar ;D:\tomcat\lib\tomcat-i18n-es.jar;D:\tomcat\lib\tomcat-i18n-fr.jar;D:\tomcat \lib\tomcat-i18n-ja.jar;D:\tomcat\lib\jna.jar;D:\tomcat\lib\platform.jar;D:\ tomcat\lib\waffle-jna.jar;D:\tomcat\lib\commons-logging-1.1.1.jar Jvm Option[1] -Dcatalina.home=D:\tomcat Jvm Option[2] -Dcatalina.base=D:\tomcat\instances\06_crlj Jvm Option[3] -Djava.endorsed.dirs=D:\tomcat\endorsed Jvm Option[4] -Djava.io.tmpdir=D:\tomcat\instances\06_crlj\temp Jvm Option[5] -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager Jvm Option[6] -Djava.util.logging.config.file=D:\tomcat\instances\06_crlj\conf\logging.pro perties Jvm Option[7] -XX:MaxPermSize=256M Jvm Option[8] -Djava.class.path=D:\tomcat\bin\tomcat-juli.jar;D:\tomcat\bin\bootstrap.jar; D:\tomcat\lib\annotations-api.jar;D:\tomcat\lib\catalina-ant.jar;D:\tomcat\l ib\catalina-ha.jar;D:\tomcat\lib\catalina-tribes.jar;D:\tomcat\lib\catalina. jar;D:\tomcat\lib\el-api.jar;D:\tomcat\lib\jasper-el.jar;D:\tomcat\lib\jaspe r-jdt.jar;D:\tomcat\lib\jasper.jar;D:\tomcat\lib\jsp-api.jar;D:\tomcat\lib\s ervlet-api.jar;D:\tomcat\lib\tomcat-coyote.jar;D:\tomcat\lib\tomcat-dbcp.jar ;D:\tomcat\lib\tomcat-i18n-es.jar;D:\tomcat\lib\tomcat-i18n-fr.jar;D:\tomcat \lib\tomcat-i18n-ja.jar;D:\tomcat\lib\jna.jar;D:\tomcat\lib\platform.jar;D:\ tomcat\lib\waffle-jna.jar;D:\tomcat\lib\commons-logging-1.1.1.jar Jvm Option[9] vfprintf Jvm Option[10] -Xms256m Jvm Option[11] -Xmx512m As you can see : java.class.path do include catalina.jar. I tried copying around catalina.jar and waffle libs around (lib dirs., endorsed dirs., etc.), but no luck. Thanks in advance for any help you can provide. Kin regards, Patrick Guillot Genigraph <mailto:pguil...@genigraph.fr> pguil...@genigraph.fr Full stack trace -- INFO: Déploiement du descripteur de configuration waffle-mixed.xml 10 juin 2011 09:24:35 org.apache.tomcat.util.digester.Digester startElement GRAVE: Begin event threw error java.lang.NoClassDefFoundError: org/apache/catalina/authenticator/AuthenticatorBase at java.lang.ClassLoader.findBootstrapClass(Native Method) at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:892) at java.lang.ClassLoader.loadClass(ClassLoader.java:302) at java.lang.ClassLoader.loadClass(ClassLoader.java:300) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java :205) at org.apache.tomcat.util.digester.Rule.begin(Rule.java:153) at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Ab stractSAXParser.java:533) at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyEl ement(AbstractXMLDocumentParser.java:220) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanS tartElement(XMLDocumentFragmentScannerImpl.ja