Howdy, Just out of curiosity, why couldn't you move to JDK 1.4 (so you could add -Djava.awt.headless=true)?
Yoav Shapira Millennium ChemInformatics >-----Original Message----- >From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] >Sent: Wednesday, October 22, 2003 3:29 PM >To: [EMAIL PROTECTED] >Subject: [SOLVEDRE] : UNIX+Apache+Tomcat Situtation > >Daniel, >Thank you for your excellent response. :) By the time I got it though I was >pretty much resolved to the idea that it was not a UNIX permission issue at >all. As I had many hours(read sore shoulder) into throwing every UNIX >permission switch in the book. Btw, it an HP environment but this solution >could apply to any *NIX setup. > >The error was actually occuring in the graphics library JFreeChart. When >the >developer logged into the workstation physically at the console and then >started Tomcat the graphics libraries in JFreeChart were able to draw to >X11. There was a 'head'. But remote users like root or tomcat_user were >'headless'. Hence the graphics methods failed because they were unable to >draw to a 'window'. > >The solution is to install PJA libraries from http://www.eteks.com/pja/en/ >which remedy the need to draw to a window. Note, this issue is resolved by >installing JDK 1.4 too but this was not an option. The situation is >possibly >better explained by this para from the PJA site; > >"When no X11 Display is available on a UNIX machine (also called headless >environment) or when GDI resources are low on Windows, it is impossible to >compute off-screen images with java.awt.Graphics methods under a JDK >version >< 1.4, even if your program doesn't need to display these images. >Typically, >this situation happens for servlets returning dynamically generated images >like pies, charts or web counters. >With PJA, you don't need to change your Java programs that you expected to >run : setting java.awt system property to com.eteks.awt.PJAToolkit is the >only required modification to your program with Java 1.1 (see PJA FAQ and >com.eteks.awt.PJAToolkit class documentation for more information)." > >Regards, >Earle > >-----Original Message----- >From: Daniel Gibby [mailto:[EMAIL PROTECTED] >Sent: Tuesday, October 21, 2003 3:48 PM >To: Tomcat Users List >Subject: Re: UNIX+Apache+Tomcat Situtation > > >This really sounds like it is a unix permissions issue, but it could be >a Security issue with java as well. I don't know as much about the java >Security model, but I can tell you things to check for with unix >permissions: > >So if 'developer' is the owner of the tomcat directory, and your webapps >and all files that are trying to be written are under that directory, it >sounds like it works fine for you when 'developer' starts tomcat- so >tomcat is run as the developer user, and since developer has rights to >create files under that directory, it works fine. >On the other hand your tomcat user doesn't sound like it has rights. > >I would suggest that you always run tomcat as the tomcat user, and make >developer and root start it as the tomcat user. >That can be easily done with a startup script instead of calling >$TOMCAT_HOME/bin/startup.sh directly or whatever it is. >I would make sure that the directories all have the tomcat user as the >owner and group, and then add root and developer to that group. > >What Unix is this? Linux? Solaris? >Here is the format to make tomcat run as the tomcat user with a >/etc/rc.d/tomcat > >I also have catalina.out automatically rotated every time I start tomcat. > >#!/bin/sh > ################################################################## > ># Comments to support chkconfig on RedHat Linux ># chkconfig: 2345 84 84 ># description: A very fast and reliable J2EE Servlet Container. > > >timestamp=`date +%Y-%m-%d-%H%M%S` >echo "timestamp= $timestamp" > >LD_ASSUME_KERNEL=2.2.5 >export LD_ASSUME_KERNEL >echo "LD_ASSUME_KERNEL= $LD_ASSUME_KERNEL" > >JAVA_HOME=/usr/local/java >export JAVA_HOME >echo "JAVA_HOME= $JAVA_HOME" > >CLASSPATH=/usr/local/java/jre/lib/core.jar:/usr/local/java/jre/lib/serv er.j >a >r >export CLASSPATH >echo "CLASSPATH= $CLASSPATH" > >TOMCAT_HOME=/usr/local/jakarta-tomcat >export TOMCAT_HOME >echo "TOMCAT_HOME= $TOMCAT_HOME" > >#CATALINA_OPTS="-Xms196m -Xmx896m -Dbuild.compiler.emacs=true" >#export CATALINA_OPTS >#echo "CATALINA_OPTS= $CATALINA_OPTS" > > case $1 in > 'start') > su tomcat4 -c "mv $TOMCAT_HOME/logs/catalina.out >$TOMCAT_HOME/logs/catalina.$timestamp" > su tomcat4 -c "$TOMCAT_HOME/bin/startup.sh" > sleep 10 > /usr/sbin/apachectl graceful > ;; > 'stop') > su tomcat4 -c "$TOMCAT_HOME/bin/shutdown.sh" > ;; > 'status') > ps auxw | fgrep tomcat | fgrep -v status | fgrep -v grep | fgrep -v >tail > ;; > *) > echo "usage: $0 {start|stop|status}" > ;; > esac ># END OF /etc/rc.d/tomcat > >Daniel > > >[EMAIL PROTECTED] wrote: > >>Hello, >>I have a situation where if a developer owns Tomcat 3 and stops/starts >>server the apps on that server all j2ee web-apps run fine. If I as root or >>'tomcat_user' or su to developer id stop/start Tomcat 3 then all j2ee >>web-apps run except modules that produce .jpegs dynamically. In the latter >>case Tomcat was setup so that the user who stop/started Tomcat owned all >>file/directories. >> >>My first response was to make all files/directories world >>read,write,execute. It must be a UNIX permission thing right. Also I >umask'd >>and source'd the UNIX personal env of each user to be world >>read,write,execute on any directories/files created but still no >difference, >>the graphs are not displayed. The graph libs are using JFreechart, btw. >> >>This is a long running issue and I would appreciate any help as I am not >>sure if this is a UNIX or Tomcat or JFreechart issue. Any suggestions? Why >>would I not be able to remotely log into box, su - to developer id and >>stop/start Tomcat with all apps functioning? Also, developer's personal >UNIX >>acct is basic stock settings with no extra frills. >> >>Regards, >>Earle >> >>--------------------------------------------------------------------- >>To unsubscribe, e-mail: [EMAIL PROTECTED] >>For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged. This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else. If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender. Thank you. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]