Thank you Bill and Raul.

I finally remembered that in past versions of j I had to put a SetEnv statement in the Apache configuration file. In the past it was for JPATHjxxx, which was replaced (and new flexibility much appreciated) in j602. But, it seems that apache doesn't have a HOME environment variable set. That causes the line (in j602/bin/profile.ijs):

home=.    >(systype-5){(2!:5'HOME');(2!:5'USERPROFILE');'\My Documents'

to return numeric 0 for home, then in the subsequent lines:

userx=.   '\j',('64-'#~16={:$3!:3[2),'602-user'
user=.    home,userx

my domain error occurs in the second one... My solution was to add the following lines to /etc/httpd/conf/httpd.conf:

# a HOME for Apache to use j
SetEnv HOME /tmp

I suppose some changes in profile.ijs might avoid the need for changing Apache's configuration file. In any case, I'm happy having solved this.

- joey


At 02:05  +0800 2008/06/08, bill lam wrote:
So does jconsole start up under apache's id "www-data", j602's profile expects a directory at 2!:5 'HOME' of the current user that user should be "www-data" in cgi.

Joey K Tuttle wrote:
Which is why I decided to shorten the example, the catch block etc. was a red herring... stdout is the system default (1!:2&4) putting that in explicitly doesn't change anything - but being paranoid, I changed my last example to:

#! /usr/local/lib/j602/bin/jconsole
(1!:2&4) 'Content-type: text/html',(10 10{a.), 'j602 says - Hello World!', 10 10 { a.
2!:55 ] 0

and verified that 601 works while 602 fails....

At 01:14  +0800 2008/06/08, bill lam wrote:
I guess it raise error inside the catch block. And the catch block is executed because there is error in the try block. Is the verb stdout defined? Insert lines like
(<'/tmp/err1') 1!:3~ LF,~ ": 4!:0 <'stdout'
before the try block to confirm verbs/nouns are defined.

HTH

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to