----------------------------- Please read the FAQ! <http://java.apache.org/faq/> ----------------------------- Configuration Help Needed, #1. I am using JServ 1.0 (compiled into Apache without DSO) #2. I am running Apache 1.3.4 #3. I am running SunOS 5.7 #4. All http calls to the mounted zone on port 8007 are getting hung and are reporting an AJP Protocol Error when the connection is broken from a browser and lynx. (e.g. >lynx http://209.182.115.82:8007/example/hello) from jserv.prop.log: [08/08/1999 13:33:53:541 EDT] WARNING: connection authentication is disabled [08/08/1999 13:33:53:657 EDT] Connection allowed from localhost/127.0.0.1 [08/08/1999 13:33:53:666 EDT] Connection allowed from cochon/209.182.115.82 [08/08/1999 13:33:53:688 EDT] Connection allowed from 209.182.168.69/209.182.168.69 [08/08/1999 13:33:53:694 EDT] Listening on port 8007 accepting 50 maximum connections [08/08/1999 13:33:53:786 EDT] Creating Servlet Zones [08/08/1999 13:33:53:792 EDT] Servlet Zone example initializing... [08/08/1999 13:33:53:798 EDT] - Using configuration file: /usr/local/ApacheJServ-1.0/example/example.properties [08/08/1999 13:33:53:931 EDT] Initialisation timeout: 10 seconds [08/08/1999 13:33:53:936 EDT] Destroy timeout: 10 seconds [08/08/1999 13:33:53:942 EDT] Session timeout: 1800 seconds [08/08/1999 13:33:53:948 EDT] New session timeout: 1800 seconds [08/08/1999 13:33:53:954 EDT] Session check frequency: 30 seconds [08/08/1999 13:33:53:961 EDT] Autoreload on zone file changes: true [08/08/1999 13:33:53:966 EDT] Autoreload on classfile changes: true [08/08/1999 13:33:54:012 EDT] Default initArgs: {} [08/08/1999 13:33:54:043 EDT] Servlet name: hello [08/08/1999 13:33:54:063 EDT] Servlet Zone example initialization complete [08/08/1999 13:36:34:418 EDT] AJP Protocol Error: java.io.IOException: Malformed AJP request: error reading line data [id = ] [token1 = null] [token2 = null] [08/08/1999 13:36:49:936 EDT] AJP Protocol Error: java.io.IOException: Malformed AJP request: error reading line data [id = ] [token1 = null] [token2 = null] #5. Configuration: A) The tail of httpd.conf for Apache: </VirtualHost> </IfDefine> # General setup Include /usr/local/ApacheJServ-1.0/conf/jserv.conf B) jserv.conf ############################################################################### # Apache JServ Configuration File # ############################################################################### # Note: this file should be appended to httpd.conf # Tell Apache on win32 to load the Apache JServ communication module # @LOAD_OR_NOT@LoadModule jserv_module libexec/mod_jserv.so # Whether Apache must start JVM or not (On=Manual Off=Autostart) # Syntax: ApJServManual [on/off] # Default: "Off" ApJServManual off # Properties filename for Apache JServ in Automatic Mode. # In manual mode this directive is ignored # Syntax: ApJServProperties [filename] # Default: "./conf/jserv.properties" ApJServProperties /usr/local/ApacheJServ-1.0/conf/jserv.properties # Log file for this module operation relative to Apache root directory. # Syntax: ApJServLogFile [filename] # Default: "./logs/mod_jserv.log" # Note: when set to "DISABLED", the log will be redirected to Apache error log ApJServLogFile /usr/local/ApacheJServ-1.0/jserv.log # Protocol used by this host to connect to Apache JServ # (see documentation for more details on available protocols) # Syntax: ApJServDefaultProtocol [name] # Default: "ajpv11" ApJServDefaultProtocol ajpv11 # Default host on which Apache JServ is running # Syntax: ApJServDefaultHost [hostname] # Default: "localhost" # ApJServDefaultHost 209.182.115.82 # Default port that Apache JServ is listening to # Syntax: ApJServDefaultPort [number] # Default: protocol-dependant (for ajpv11 protocol this is "8007") ApJServDefaultPort 8007 # Passes parameter and value to specified protocol. # Syntax: ApJServProtocolParameter [name] [parameter] [value] # Default: NONE # Note: Currently no protocols handle this. Introduced for future protocols. # Apache JServ secret key file relative to Apache root directory. # Syntax: ApJServSecretKey [filename] # Default: "./conf/jserv.secret.key" # Warning: if authentication is DISABLED, everyone on this machine (not just # this module) may connect to your servlet engine and execute servlet # bypassing web server restrictions. See the documentation for more information ApJServSecretKey DISABLED # Mount point for Servlet zones # (see documentation for more information on servlet zones) # Syntax: ApJServMount [name] [jserv-url] # Default: NONE # Note: [name] is the name of the Apache URI path to mount jserv-url on # [jserv-url] is something like "protocol://host:port/zone" # If protocol, host or port are not specified, the values from # "ApJServDefaultProtocol", "ApJServDefaultHost" or "ApJServDefaultPort" # will be used. # If zone is not specified, the zone name will be the first subdirectory of # the called servlet. # Example: "ApJServMount /servlets /myServlets" # if user requests "http://host/servlets/TestServlet" # the servlet "TestServlet" in zone "myServlets" on default host # thru default protocol on defaul port will be requested # Example: "ApJServMount /servlets ajpv11://localhost:8007" # if user requests "http://host/servlets/myServlets/TestServlet" # the servlet "TestServlet" in zone "myServlets" will be requested # Example: "ApJServMount /servlets ajpv11://jserv.mydomain.com:15643/myServlets" # if user requests "http://host/servlets/TestServlet" the servlet # "TestServlet" in zone "myServlets" on host "jserv.mydomain.com" using # "ajpv11" protocol on port "15643" will be executed ApJServMount /example ajpv11://209.182.115.82:8007/example # Whether <VirtualHost> inherits base host mount points or not # Syntax: ApJServMountCopy [on/off] # Default: "On" # Note: This directive is meaninful only when virtual hosts are being used ApJServMountCopy on # Executes a servlet passing filename with proper extension in PATH_TRANSLATED # property of servlet request. # Syntax: ApJServAction [extension] [servlet-uri] # Defaults: NONE # Notes: This is used for external tools such as JSP (Java Servlet Pages), # GSP (GNU Server Pages) or Java server side include. #ApJServAction .jsp /servlets/nl.nmg.jsp.JSPServlet #ApJServAction .gsp /servlets/com.bitmechanics.gsp.GspServlet #ApJServAction .jhtml /servlets/org.apache.servlet.ssi.SSI # Enable the Apache JServ status handler with the URL of # "http://servername/jserv/" (note the trailing slash!) # Change the ".your_domain.com" to match your domain to enable. <Location /jserv/> SetHandler jserv-status order deny,allow deny from all allow from localhost 127.0.0.1 </Location> ############################## W A R N I N G ################################## # Remember to disable or otherwise protect the execution of the Apache JServ # # on a production environment since this may give untrusted users to gather # # restricted information on your servlets and their initialization arguments # ############################################################################### C) jserv.properties ################################### # Apache JServ Configuration File # ################################### ################################### WARNING #################################### # Unlike normal java properties, JServ configurations # have some important extentions: # # 1) commas are used as token separators # 2) multiple definitions of the same key # are concatenated in a comma separated list. ################################################################################ # Execution parameters ####################### # The Java Virtual Machine interpreter # Syntax: wrapper.bin=[filename] # Default: "/usr/bin/java" for Unix systems # "c:\jdk\bin\java.exe" for Win32 systems wrapper.bin=/usr/java/bin/java # Arguments passed to java interpreter (optional) # Syntax: wrapper.bin.parameters=[string] # Default: NONE # Apache JServ entry point class # Syntax: wrapper.class=[classname] # Default: "org.apache.jserv.JServ" wrapper.class=org.apache.jserv.JServ # Arguments passed to main class after the properties filename # Syntax: wrapper.class.parameters=[string] # Default: NONE # Note: currently not used # PATH environment value passed to the JVM # Syntax: wrapper.path=[path] # Default: "/bin:/usr/bin:/usr/local/bin" for Unix systems # "c:\(windows-dir);c:\(windows-system-dir)" for Win32 systems # Notes: if more than one line is supplied these will be concatenated using # ":" or ";" (depending wether Unix or Win32) characters # Under Win32 (windows-dir) and (windows-system-dir) will be # automatically evaluated to match your system requirements # CLASSPATH environment value passed to the JVM # Syntax: wrapper.classpath=[path] # Default: NONE (Sun's JDK/JRE already have a default classpath) # Notes: if more than one line is supplied these will be concatenated using # ":" or ";" (depending wether Unix or Win32) characters. # JVM must be able to find JSDK and JServ classes and any # utility classes used by your servlets. #wrapper.classpath=/usr/java/lib/classes.zip wrapper.classpath=/usr/local/ApacheJServ-1.0/src/java/ApacheJServ.jar wrapper.classpath=/usr/local/JSDK2.0/lib/jsdk.jar wrapper.classpath=/usr/local/JavaWebServer1.1.3/lib/jws.jar wrapper.classpath=/usr/local/java_http/ wrapper.classpath=/usr/local/jserv/lib/ApacheJServ.jar wrapper.classpath=. # An environment name with value passed to the JVM # Syntax: wrapper.env=[name]=[value] # Default: NONE on Unix Systems # SystemDrive and SystemRoot with appropriate values on Win32 systems # An environment name with value copied from caller to JAVA Virtual Machine # Syntax: wrapper.env.copy=[name] # Default: NONE wrapper.env.copy=PATH wrapper.env.copy=LD_LIBRARY_PATH # Copies all environment from caller to JAVA Virtual Machine # Syntax: wrapper.env.copyall=[true,false] # Default: false # Protocol used for signal handling # Syntax: wrapper.protocol=[name] # Default: ajpv11 # General parameters ###################### # Set the port JServ will listen to. # Syntax: port=[1024,65535] (int) # Default: 8007 port=8007 # Servlet Zones parameters ########################### # List of servlet zones JServ manages # Syntax: zones=<servlet zone>,<servlet zone>... (Comma separated list of String) # Default: <empty> zones=example # Configuration file for each servlet zone # Syntax: <servlet zone name as on the zones list>.properties=<full path to configFile> (String) # Default: <empty> example.properties=/usr/local/ApacheJServ-1.0/example/example.properties # Security parameters ##################### # Enable/disable the execution of org.apache.jserv.JServ as a servlet. # This is disabled by default because it may give informations that should # be restricted. # Note that the execution of JServ as a servlet is filtered by mod_jserv # by default so that both sides should be enabled to let this service work. # This service is useful for installation and configuration since it gives # feedback about the exact configurations JServ is set with, but it should # be disabled when both installation and configuration processes are done. # Syntax: security.selfservlet=[true,false] (boolean) # Default: false security.selfservlet=false # Set the maximum number of socket connections JServ may handle simultaneously. # (this number does not identify the maximum number of concurrent servlet # requests: see the JServ protocol specification for more info on this) # Syntax: security.maxConnections=(int)>1 # Default: 50 security.maxConnections=50 # List of IP addresses allowed to connect to JServ. This is a first security # filtering to reject possibly unsecure connections and avoid the overhead # of connection authentication. # Syntax: security.allowedAddresses=<IP address>,<IP Address>... (Comma separated list of IP adresses) # Default: <empty list> security.allowedAddresses=127.0.0.1,209.182.168.69,209.182.115.82 # Enable/disable connection authentication. # NOTE: unauthenticated connections are a little faster since authentication # handshake is not performed at connection creation. # WARNING: disable authentication only if you can protect the intrusion on # the port JServ listens on with other systems or do it at your own risk. # Syntax: security.authentication=[true,false] (boolean) # Default: true security.authentication=false # Authentication secret key. # The secret key is passed as a file that must be kept secure and must # be exactly the same of those used by clients to authenticate themselves. # Syntax: security.secretKey=<secret key file> (String) # Default: <empty> #security.secretKey= # Length of the randomly generated challenge string (in bytes) used to # authenticate connections. 5 is the lowest possible choice to force a safe # level of security and reduce connection creation overhead. # Syntax: security.challengeSize=(int)>5 # Default: 5 security.challengeSize=5 # Logging parameters #################### # Enable/disable JServ tracing, used for debugging and development. # WARNING: tracing is a very costy operation in term of performance and # its disabled by default. Note that trace logs may become really big # since each servlet connection may generate many Kb of log. # Syntax: log=[true,false] (boolean) # Default: false log=true # Set the name of the trace/log file. To avoid possible confusion about # the location of this file, an absolute pathname is recommended. # On Unix, this file must have write permissions by the owner of the JVM # process. In other words, if you are running Apache JServ in manual mode # and Apache is running as user nobody, then the file must have its # permissions set so that that user can write to it. # Syntax: log.file=<log file name> (String) # Default: NONE log.file=/usr/local/apache-jserv/logs/jserv.prop.log # Enable the timestamp before the log message # Syntax: log.timestamp=[true,false] (boolean) # Default: true log.timestamp=true # Use the given string as a data format # (see java.text.SimpleDateFormat for the list of options) # Syntax: log.dateFormat=(String) # Default: [dd/MM/yyyy HH:mm:ss:SSS zz] log.dateFormat=[dd/MM/yyyy HH:mm:ss:SSS zz] # Enable/disable channels, each logging different part of the code # self-explained by their names. # Syntax: log.channel.<channel name>=[true,false] (boolean) # Default: false log.channel.servletLog=true log.channel.init=true log.channel.terminate=true log.channel.serviceRequest=true log.channel.authentication=true log.channel.requestData=true log.channel.responseHeaders=true log.channel.signal=true log.channel.exceptionTracing=true log.channel.servletManager=true ################################################################# I apreciate any help given with regard to the AJP Protocol Error Ted Donlan Story Street Partners -- -------------------------------------------------------------- Please read the FAQ! <http://java.apache.org/faq/> To subscribe: [EMAIL PROTECTED] To unsubscribe: [EMAIL PROTECTED] Archives and Other: <http://java.apache.org/main/mail.html> Problems?: [EMAIL PROTECTED]