Hello fellow tomcat users,
    I have been trying to get Tomcat 3.1 up and running under our AIX (believe it is 4.3.3 running on a RS/6000 machine).  I was successful at compiling the .so file for Linux (I run SUSE 6.4 on my desktop) by modifying the sun makefile for linux.  Of course, going to AIX is not so easy.  In fact, a lot of the make file had to be completely rewritten.  I have tried, ld and makeC++SharedLib_r to make the file.  I have also used both xlC and gcc to compile the source files.  As another measure, I modified the makefile provided with iPlanet for compiling NSAPI so's and all return the same error when trying to load the jk_init function inside iPlanet.

[https-asteroid.mn.ptc.com]: start failed. (2: unknown early startup error)
       [https-asteroid.mn.ptc.com]: In jk_init /qa/asteroid/Tomcat/jakarta-tomcat/conf/workers.properties
       debug /qa/asteroid/iPlanet/server4/https-asteroid.mn.ptc.com/logs/nsapi.log
       [https-asteroid.mn.ptc.com]: conf_init: Error running init function jk_init: unknown error
       [https-asteroid.mn.ptc.com]: server exit: status 1

In otherwords, it appears that the library was loaded properly but it could not execute the jk_init method???  Unfortunately iPlanet/NES errors are so poor that it is hard to understand what is happening here.

I have provided the Makefile I used to create this error (with zero compile errors and warnings) and the obj.conf lines from the webserver.  If anyone has built this NSAPI so for AIX and either iPlanet or NES3.6x I'd be delighted to hear from you on how it was done!!!

I have checked that all the paths accessed in the obj.conf file are writable by the netscape and tomcat user, and the paths are properly defined

The servlet engine (ie. Tomcat) works fine standalone.  It is only when integrating with the iPlanet web browser I can't get this so library to work.

The obj.conf file setup is exactly as it appears on my linux box (except paths etc.)

Thanks
            Jason
 

MAKEFILE
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

SUITESPOT_HOME=/path/to/my/iPlanet/plugins/directory
INCLUDE_FLAGS=-I $(SUITESPOT_HOME)/include
#CC_CMD=xlC -bM:SRE -berok -bexpall -DXP_UNIX -DAIX -DNET_SSL -D_REENTRANT
CC_CMD=gcc -DXP_UNIX -DAIX -DNET_SSL -D_REENTRANT
DEF_LIBPATH=/usr/lib/threads:/usr/ibmcxx/lib:/usr/lib:/lib
DLL_LDFLAGS=-p 0 -G -blibpath:$(DEF_LIBPATH)
LD_SHAREDCMD=/usr/ibmcxx/bin/makeC++SharedLib_r -lc -bnoentry -bM:SRE $(DLL_LDFLAGS)
 

JAVA_HOME=/usr/java_dev2/

all:
prepare:

OS_TYPE=aix
INCLUDEDIR=$(SUITESPOT_HOME)/include
JAVA_INCLUDE=$(JAVA_HOME)/include
JK_OBJS = jk_ajp12_worker.o jk_lb_worker.o jk_sockbuf.o jk_connect.o jk_map.o \
jk_uri_worker_map.o jk_nsapi_plugin.o jk_util.o jk_jni_worker.o \
jk_pool.o jk_worker.o

INCLUDE_FLAGS=-I$(INCLUDEDIR) -I$(INCLUDEDIR)/base -I$(INCLUDEDIR)/frame -I$(JAVA_INCLUDE) -I$(JAVA_INCLUDE)
COMMON_DEFS=-DMCC_HTTPD -DXP_UNIX -DAIX -DSPAPI20

all: nsapi_redirector.so

nsapi_redirector.so: $(JK_OBJS)
        $(LD_SHAREDCMD) $(JK_OBJS) -o nsapi_redirector.so $(EXTRA_LDDEFINES)

.c.o:
        $(CC_CMD) $(COMMON_DEFS) $(INCLUDE_FLAGS) -c $<

clean:
        rm $(JK_OBJS)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
 
 

OBJ.CONF file - NOTE: the alias to servlets are not here, but should be needed to load the library
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

# Netscape Communications Corporation - obj.conf
# You can edit this file, but comments and formatting changes
# might be lost when the admin server makes changes.

Init fn="flex-init" access="/iPLANET_Directory/Server_Directory/logs/access" format.access="%Ses->client.ip% - %Req->vars.auth-user% [%SYSDATE%] \"%Req->reqpb.clf-request%\" %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length%"
Init fn="load-types" mime-types="mime.types"
Init fn="load-modules" funcs="jk_init,jk_service" shlib="/iPLANET_Directory/plugins/nsapi/nsapi_redirector.so"
Init fn="jk_init" worker_file="/Tomcat_Direcotry/conf/workers.properties" log_level="debug" log_file="/iPLANET_Direcotyr/Server_Directory/logs/nsapi.log"

<Object name="default">
NameTrans fn="pfx2dir" from="/ns-icons" dir="/iPLANET_Directory/ns-icons" name="es-internal"
NameTrans fn="pfx2dir" from="/mc-icons" dir="/iPLANET_Directory/ns-icons" name="es-internal"
NameTrans fn="pfx2dir" from="/help" dir="/iPLANET_Directory/manual/https/ug" name="es-internal"
NameTrans fn="pfx2dir" from="/manual" dir="/iPLANET_Directory/manual/https" name="es-internal"
NameTrans fn="document-root" root="/iPLANET_Directory/docs"
PathCheck fn="unix-uri-clean"
PathCheck fn="check-acl" acl="default"
PathCheck fn="find-pathinfo"
PathCheck fn="find-index" index-names="index.html,home.html"
ObjectType fn="type-by-extension"
ObjectType fn="force-type" type="text/plain"
Service method="(GET|HEAD)" type="magnus-internal/imagemap" fn="imagemap"
Service method="(GET|HEAD)" type="magnus-internal/directory" fn="index-common"
Service method="(GET|HEAD|POST)" type="*~magnus-internal/*" fn="send-file"
AddLog fn="flex-log" name="access"
</Object>

<Object name="cgi">
ObjectType fn="force-type" type="magnus-internal/cgi"
Service fn="send-cgi"
</Object>

<Object name="es-internal">
PathCheck fn="check-acl" acl="es-internal"
</Object>

<Object name="Tomcat-Authenticated">
PathCheck fn="check-acl" acl="Authenticated"
ObjectType fn="force-type" type="text/plain"
Service fn="jk_service" worker="ajp12"
</Object>

<Object name="Tomcat-Anonymous">
PathCheck fn="check-acl" acl="Anonymous"
ObjectType fn="force-type" type="text/plain"
Service fn="jk_service" worker="ajp12"
</Object>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 

-- 
///////////////////////////////////////////////////
Jason A. Drake
   PTC - Windchill R&D
   Software Engineer - Runtime Services
   1200 W. County Rd E
   Arden Hills, MN 55112

   (651)-765-2123 (PH)
   (651)-765-2156 (FAX)

   jdrake@windchill.com
///////////////////////////////////////////////////