-----------------------------
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]

Reply via email to