Apologies, I've put a lot in this email so that hopefully my rescuer won't
have to in theirs...

This is probably such a dumb problem I deserve to be shot, but I'm stuck and
I have no support and I'm desperately trying to migrate one machine in this
office so that we don't have to shell out for more expensive proprietary
lock-in rubbish (here a CRM).

Machine i686, OS RedHat 9...

I'm trying to get Hipergate up and running, for which I need Java (RE and
DK) and Tomcat. I've never set up a web server before and always had a
nightmare with Java - which I like in theory, but find infuriatingly
bloated. Well, I've got J2EE in it's default place /opt/ and Tomcat 5.0.30
in /opt too and everything is now working fine. The Tomcat admin pages come
up okay, I can log in and I can 'run' the example JSP pages. I've even got
Hipergate deployed on Tomcat and can see it's login page. But that's as far
as I go... As soon as I hit login I get error(s) of the form:

        HTTP Status 500 -
        
        type Exception report
        
        message
        
        description The server encountered an internal error () that
prevented it from fulfilling this request.
        
        exception
        
        org.apache.jasper.JasperException: Unable to compile class for JSP
        
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandle
r.java:97)
        
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:3
46)
        
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:439)
        
org.apache.jasper.compiler.Compiler.compile(Compiler.java:497)
        
org.apache.jasper.compiler.Compiler.compile(Compiler.java:476)
        
org.apache.jasper.compiler.Compiler.compile(Compiler.java:464)
        
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:5
11)
        
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
95)
        
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
                javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        
        root cause
        
        Unable to find a javac compiler;
        com.sun.tools.javac.Main is not on the classpath.
        Perhaps JAVA_HOME does not point to the JDK
        
org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(C
ompilerAdapterFactory.java:105)
                org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:929)
                org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:758)
        
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:407)
        
org.apache.jasper.compiler.Compiler.compile(Compiler.java:497)
        
org.apache.jasper.compiler.Compiler.compile(Compiler.java:476)
        
org.apache.jasper.compiler.Compiler.compile(Compiler.java:464)
        
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:5
11)
        
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
95)
        
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
                javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        
        note The full stack trace of the root cause is available in the
Apache Tomcat/5.0.30 logs.

FYI the said stack trace looks like this:

[EMAIL PROTECTED] opt]# tail -50
jakarta-tomcat-5/jakarta-tomcat-5.0.30/logs/localhost_log.2005-03-17.txt
        2005-03-17 14:38:50 StandardContext[/jsp-examples]SessionListener:
attributeAdded('AA89D380700D2E70151385DD9E96D9EE', 'theTruth', 'true')
        2005-03-17 14:39:13 StandardContext[/jsp-examples]SessionListener:
attributeAdded('AA89D380700D2E70151385DD9E96D9EE',
'javax.servlet.jsp.jstl.fmt.request.charset', 'UTF-8')
        2005-03-17 14:40:10
StandardContext[/servlets-examples]InvokerFilter(ApplicationFilterConfig[nam
e=Path Mapped Filter, filterClass=filters.ExampleFilter]): 5
        milliseconds
        2005-03-17 14:40:14
StandardContext[/servlets-examples]InvokerFilter(ApplicationFilterConfig[nam
e=Path Mapped Filter, filterClass=filters.ExampleFilter]): 7
        milliseconds
        2005-03-17 14:44:48 StandardContext[/manager]HTMLManager: list:
Listing contexts for virtual host 'localhost'
        2005-03-17 14:45:03 StandardWrapperValve[jsp]: Servlet.service() for
servlet jsp threw exception
        Unable to find a javac compiler;
        com.sun.tools.javac.Main is not on the classpath.
        Perhaps JAVA_HOME does not point to the JDK
                at
org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(C
ompilerAdapterFactory.java:105)
                at
org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:929)
                at
org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:758)
                at
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:407)
                at
org.apache.jasper.compiler.Compiler.compile(Compiler.java:497)
                at
org.apache.jasper.compiler.Compiler.compile(Compiler.java:476)
                at
org.apache.jasper.compiler.Compiler.compile(Compiler.java:464)
                at
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:5
11)
                at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
95)
                at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
                at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
                at
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
                at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:252)
                at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
                at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:214)
                at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
                at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContext
Valve.java:198)
                at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:152)
                at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
                at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137
)
                at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
                at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118
)
                at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:102)
                at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:109)
                at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
                at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
                at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
                at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
                at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:705)
                at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
                at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:684)
                at java.lang.Thread.run(Thread.java:534)
         
        2005-03-17 15:10:08 StandardContext[/jsp-examples]SessionListener:
sessionDestroyed('AA89D380700D2E70151385DD9E96D9EE')
        2005-03-17 15:10:08 StandardContext[/jsp-examples]SessionListener:
attributeRemoved('AA89D380700D2E70151385DD9E96D9EE', 'table',
'[EMAIL PROTECTED]')
        2005-03-17 15:10:08 StandardContext[/jsp-examples]SessionListener:
attributeRemoved('AA89D380700D2E70151385DD9E96D9EE',
'javax.servlet.jsp.jstl.fmt.request.charset', 'UTF-8')
        2005-03-17 15:10:08 StandardContext[/jsp-examples]SessionListener:
attributeRemoved('AA89D380700D2E70151385DD9E96D9EE', 'theTruth', 'true')

It seems to be a system classLoader problem, which (according to:
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/class-loader-howto.html
"System - This class loader is normally initialized from the contents of the
CLASSPATH environment variable. All such classes are visible to both Tomcat
internal classes, and to web applications." where: "However, the standard
Tomcat 4 startup scripts ($CATALINA_HOME/bin/catalina.sh or
%CATALINA_HOME%\bin\catalina.bat) totally ignore the contents of the
CLASSPATH environment variable itself" (bizarre?!). Is Tomcat 5 the same?
Besides I'm running from the command: 

[EMAIL PROTECTED] (in tomcat root)]# ./bin/jsvc
-Djava.endorsed.dirs=./common/endorsed -Dfile.encoding=UTF-8 -cp
./bin/bootstrap.jar -outfile ./logs/catalina.out -errfile
./logs/catalina.err org.apache.catalina.startup.Bootstrap

Running bin/startup.sh crashes my shell (for the same reason as this issue I
think).

I've tried numerous combinations of CLASSPATH(S), PATH(S) and JAVA_HOME
variables in different orders to no avail. I've also updated /etc/profile so
that these are global and persistent.

The variables are currently set at:

        PATH=$PATH:/opt/SUNWappserver/bin
        JAVA_HOME=/opt/SUNWappserver/jdk
        CLASSPATH=/opt/SUNWappserver/jdk (tried lots of others
simulataneously)
        LD_ASSUME_KERNEL="2.2.5"

The contents of which are:

[EMAIL PROTECTED] opt]# ls -l /opt/SUNWappserver/jdk/
        total 88
        drwxr-xr-x      bin
        -rw-r--r--      COPYRIGHT
        drwxr-xr-x      demo
        drwxr-xr-x      include
        drwxr-xr-x      jre
        drwxr-xr-x      lib
        -rw-r--r--      LICENSE
        drwxr-xr-x      man
        -rw-r--r--      README
        -rw-r--r--      README.html
        -rw-r--r--      THIRDPARTYLICENSEREADME.txt
        
[EMAIL PROTECTED] opt]# ls -l /opt/SUNWappserver/jdk/bin
        total 1732
        -r-xr-xr-x      66420           appletviewer
        -r-xr-xr-x      66156           extcheck
        -r-xr-xr-x       1080           HtmlConverter
        -r-xr-xr-x      66188           idlj
        -r-xr-xr-x      66156           jar
        -r-xr-xr-x      66156           jarsigner
        -r-xr-xr-x      64940           java
        -r-xr-xr-x      66156           javac
        -r-xr-xr-x      66156           javadoc
        -r-xr-xr-x      66156           javah
        -r-xr-xr-x      66156           javap
        -r-xr-xr-x       1789           java-rmi.cgi
        -r-xr-xr-x      66156           jdb
        -r-xr-xr-x      66156           keytool
        -r-xr-xr-x      66188           kinit
        -r-xr-xr-x      66188           klist
        -r-xr-xr-x      66188           ktab
        -r-xr-xr-x      66156           native2ascii
        -r-xr-xr-x      66380           orbd
        -r-xr-xr-x      66420           policytool
        -r-xr-xr-x      66156           rmic
        -r-xr-xr-x      66156           rmid
        -r-xr-xr-x      66156           rmiregistry
        -r-xr-xr-x      66156           serialver
        -r-xr-xr-x      66188           servertool
        -r-xr-xr-x      66188           tnameserv

(how are these all similar sizes?)

[EMAIL PROTECTED] opt]# ls -l /opt/SUNWappserver/jdk/lib
        total 6324
        -rw-r--r--      dt.jar
        -rw-r--r--      htmlconverter.jar
        -rw-r--r--      ir.idl
        -rw-r--r--      orb.idl
        -rw-r--r--      tools.jar

Realising that Java isn't JavaScript I've pointed CLASSPATH to
$CATALINA_HOME/common/lib and the like - all that kind of thing. The
contents of two important ones are like:

[EMAIL PROTECTED] jakarta-tomcat-5.0.30]# ls -l common/lib
        total 2532
        -rw-r--r--      ant.jar
        -rw-r--r--      ant-launcher.jar
        -rw-r--r--      commons-collections-3.1.jar
        -rw-r--r--      commons-dbcp-1.2.1.jar
        -rw-r--r--      commons-el.jar
        -rw-r--r--      commons-pool-1.2.jar
        -rw-r--r--      jasper-compiler.jar
        -rw-r--r--      jasper-runtime.jar
        -rw-r--r--      jsp-api.jar
        -rw-r--r--      naming-common.jar
        -rw-r--r--      naming-factory.jar
        -rw-r--r--      naming-java.jar
        -rw-r--r--      naming-resources.jar
        -rw-r--r--      servlet-api.jar

[EMAIL PROTECTED] ((tomcat)/webapps/)hipergate]# ls -l WEB-INF/lib/
        total 15560
        -rw-rw-rw-      beanshell.bsh-2.0b1.jar
        -rw-rw-rw-      hipergate-2.1.16.jar
        -rw-rw-rw-      ibm.bsf-2.2.jar
        -rw-rw-rw-      j2ee.jar
        -rw-rw-rw-      jaf-1.0.2.jar
        -rw-rw-rw-      jakarta-oro-2.0.8.jar
        -rw-rw-rw-      javamail-1.3.2.jar
        -rw-rw-rw-      jcp.portlet-1.0.jar
        -rw-rw-rw-      jdbc2_0-stdext.jar
        -rw-rw-rw-      lucene-1.4-final.jar
        -rw-rw-rw-      msbase.jar
        -rw-rw-rw-      mssqlserver.jar
        -rw-rw-rw-      msutil.jar
        -rw-rw-rw-      novell.ldap.jar
        -rw-rw-rw-      oracle10g.jdbc3.jar
        -rw-rw-rw-      pg74.215.jdbc3.jar
        -rw-rw-rw-      poi-2.5-final-20040302.jar
        -rw-rw-rw-      poi-contrib-2.5-final-20040302.jar
        -rw-rw-rw-      poi-scratchpad-2.5-final-20040302.jar
        -rw-rw-rw-      sun.jai-1.1.2-clibwrapper_jiio.jar
        -rw-rw-rw-      sun.jai-1.1.2-jai_codec.jar
        -rw-rw-rw-      sun.jai-1.1.2-jai_core.jar
        -rw-rw-rw-      sun.jai-1.1.2-jai_imageio.jar
        drwxrwxrwx      sun.jai-1.1.2-linux-i386
        -rw-rw-rw-      sun.jai-1.1.2-mlibwrapper_jai.jar
        drwxrwxrwx      sun.jai-1.1.2-windows-i386
        -rw-rw-rw-      xalan.jar
        -rw-rw-rw-      xercesImpl-2.6-2.jar
        -rw-rw-rw-      xmlParserAPIs-2.6-2.jar

So I feel I've got javac and jasper covered one way or another. What's
happening!?

Is it not the case that all this type of configuration problem (for which
I've seen a lot of material on the web) are just file location management
issues? Surely this is the sort of problem a 'minor' configuration script
can help everybody with? I'd write it myself if I had the insider knowledge.

Now I've tried explicitly putting every *.jar file in the whole /opt tree
onto CLASSPATH! Now I know I'm missing 'something crucial'.

One last thing... what is it? Tomcat or Catalina? They're both great names,
but in combination it just says: c o n f u s i n g   t o   u s e r s. OK,
maybe it's just me.

I love all Apache / open source efforts, so please don't see this as a
complaint; it's great work.

Regards,

Lee

(I'll migrate some of this office to open source even if it kills me.)

Reply via email to