You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by David Wynter <da...@roamware.com> on 2002/09/28 21:28:40 UTC
Correctly configuring server.xml?
I have now reinstalled Tomcat 4.1.12 a second time and it seem to be fine, I
could see the standard index.jsp on localhost before chaning my server.xml
to show my website to the world.
I have setup a redirect in the Apache index.html.en page to point to my web
application. But I change server.xml to identify my host (www.roamware.com)
and it stops working. I get connection refused. Also now when I shutdown
Tomcat I get a Connection refused exception. I have read the documentation
on server.xml and what I have below seems right, but it doesn't work.
I would also like to know how to stop people seeing the standard index.jsp
on my site?
Also I deleted my webapp and put the war file in the webapps directory. But
it now does not automatically unpack the war as specified. Ideas on what is
wrong?
Here is my server.xml
<!-- Example Server Configuration File -->
<!-- Note that component elements are nested corresponding to their
parent-child relationships with each other -->
<!-- A "Server" is a singleton element that represents the entire JVM,
which may contain one or more "Service" instances. The Server
listens for a shutdown command on the indicated port.
Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig"
modJk="usr/local/apache2/modules/mod_jk.so" />
<!-- Uncomment these entries to enable JMX MBeans support -->
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
debug="0"/>
<Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
debug="0"/>
<!-- Global JNDI resources -->
<GlobalNamingResources>
<!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved">
</Resource>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" (and therefore the web applications visible
within that Container). Normally, that Container is an "Engine",
but this is not required.
Note: A "Service" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<!-- Define the Tomcat Stand-Alone Service -->
<Service name="Tomcat-Standalone">
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Each Connector passes requests on to
the
associated "Container" (normally an Engine) for processing.
By default, a non-SSL HTTP/1.1 Connector is established on port
8080.
You can also enable an SSL HTTP/1.1 Connector on port 8443 by
following the instructions below and uncommenting the second
Connector
entry. SSL support requires the following steps (see the SSL
Config
HOWTO in the Tomcat 4.0 documentation bundle for more detailed
instructions):
* Download and install JSSE 1.0.2 or later, and put the JAR files
into "$JAVA_HOME/jre/lib/ext".
* Execute:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
(Windows)
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA
(Unix)
with a password value of "changeit" for both the certificate and
the keystore itself.
By default, DNS lookups are enabled when a web application calls
request.getRemoteHost(). This can have an adverse impact on
performance, so you can disable it by setting the
"enableLookups" attribute to "false". When DNS lookups are
disabled,
request.getRemoteHost() will return the String version of the
IP address of the remote client.
-->
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
port="8009" minProcessors="5" maxProcessors="75"
acceptCount="10" debug="0"/>
<!-- An Engine represents the entry point (within Catalina) that
processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes
them
on to the appropriate Host (virtual host). -->
<!-- Define the top level container in our container hierarchy -->
<Engine name="Standalone" defaultHost="www.roamware.com" debug="0">
<!-- The request dumper valve dumps useful debugging information about
the request headers and cookies that were received, and the
response
headers and cookies that were sent, for all requests received by
this instance of Tomcat. If you care only about requests to a
particular virtual host, or a particular application, nest this
element inside the corresponding <Host> or <Context> entry
instead.
For a similar mechanism that is portable to all Servlet 2.3
containers, check out the "RequestDumperFilter" Filter in the
example application (the source for this filter may be found in
"$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
Request dumping is disabled by default. Uncomment the following
element to enable it. -->
<!--
<Valve className="org.apache.catalina.valves.RequestDumperValve"/>
-->
<!-- Global logger unless overridden at lower levels -->
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="catalina_log." suffix=".txt"
timestamp="true"/>
<!-- Because this Realm is here, an instance will be shared
globally -->
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
debug="0" resourceName="UserDatabase"/>
<!-- Define the default virtual host -->
<Host name="www.roamware.com" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig"
append="true"
forwardAll="false" modJk="usr/local/apache2/modules/mod_jk.so"
workersConfig="/usr/local/apache2/conf/workers.properties" />
<!-- Logger shared by all Contexts related to this virtual host. By
default (when using FileLogger), log files are created in the
"logs"
directory relative to $CATALINA_HOME. If you wish, you can
specify
a different directory with the "directory" attribute. Specify
either a
relative (to $CATALINA_HOME) or absolute path to the desired
directory.-->
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="roamware_log." suffix=".txt"
timestamp="true"/>
<!-- Define properties for each web application. This is only
needed
if you want to set non-default properties, or have web
application
document roots in places other than the virtual host's appBase
directory. -->
<!-- Tomcat Root Context -->
<Context path="" docBase="ROOT" debug="0"/>
<!-- Tomcat Roamware Context -->
<!-- To support the path="" we have a symbolic link called rwsite in
ROOT to rwsite -->
<Context path="/rwsite" docBase="rwsite" debug="0"/>
</Host>
</Engine>
</Service>
<!-- The MOD_WEBAPP connector is used to connect Apache 1.3 with Tomcat
4.0
as its servlet container. Please read the README.txt file coming with
the WebApp Module distribution on how to build it.
(Or check out the "jakarta-tomcat-connectors/webapp" CVS repository)
To configure the Apache side, you must ensure that you have the
"ServerName" and "Port" directives defined in "httpd.conf". Then,
lines like these to the bottom of your "httpd.conf" file:
LoadModule webapp_module libexec/mod_webapp.so
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples/
The next time you restart Apache (after restarting Tomcat, if needed)
the connection will be established, and all applications you make
visible via "WebAppDeploy" directives can be accessed through Apache.
-->
<!-- Define an Apache-Connector Service -->
<!--
<Service name="Tomcat-Apache">
<Connector className="org.apache.catalina.connector.warp.WarpConnector"
port="8008" minProcessors="5" maxProcessors="75"
enableLookups="true" appBase="webapps"
acceptCount="10" debug="0"/>
<Engine className="org.apache.catalina.connector.warp.WarpEngine"
name="Apache" debug="0">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="apache_log." suffix=".txt"
timestamp="true"/>
<Realm className="org.apache.catalina.realm.MemoryRealm" />
</Engine>
</Service>
-->
</Server>
David Wynter
roamware Ltd.
(+44) (0) 208 922 7539 B.
(+44) (0) 7879 605 706 M.
david@roamware.com
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>
Re: Correctly configuring server.xml?
Posted by Jacob Kjome <ho...@visi.com>.
Hi David,
You app is not getting auto-deployed because you defined a context in the
server.xml. If you didn't define a context, Tomcat would expand the .war
to a directory of the same name and create a context for you. You have a
couple of options...
1. Don't define your context. You don't seem to be doing anything really
special so letting Tomcat auto-generate your context should be just
fine. Specifically, remove the following entry from your server.xml...
<Context path="/rwsite" docBase="rwsite" debug="0"/>
2. Define the context, like you have, but before tomcat is started, expand
your .war file to a directory named "rwsite" in webapps. You can use any
zip utility to do this since .war files are compressed using the zip
format. Now start your server and things will work just fine.
3. Use a context configuration file to define a <Context> element. Look
at the "admin.xml" and "manager.xml" files in the webapps directory for an
example. You can do a couple of things here:
a. leave the docBase the way you have it and when hot-deploying, copy
both the directory *and* the context configuration file at the same time to
the webapps directory
b. just copy the context configuration file to the webapps directory
and have your docBase outside the webapps directory. In this case, your
docbase will need to be the fully qualified path to the directory
containing your webapp.
I'm not sure about the index.html.en stuff. I think Apache supports that
sort of localization, but I'm not sure Tomcat does. If it does, that would
be cool!
Try that and see if most of your issues go away.
Jake
At 08:28 PM 9/28/2002 +0100, you wrote:
>I have now reinstalled Tomcat 4.1.12 a second time and it seem to be fine, I
>could see the standard index.jsp on localhost before chaning my server.xml
>to show my website to the world.
>
>I have setup a redirect in the Apache index.html.en page to point to my web
>application. But I change server.xml to identify my host (www.roamware.com)
>and it stops working. I get connection refused. Also now when I shutdown
>Tomcat I get a Connection refused exception. I have read the documentation
>on server.xml and what I have below seems right, but it doesn't work.
>
>I would also like to know how to stop people seeing the standard index.jsp
>on my site?
>
>Also I deleted my webapp and put the war file in the webapps directory. But
>it now does not automatically unpack the war as specified. Ideas on what is
>wrong?
>
>Here is my server.xml
>
><!-- Example Server Configuration File -->
><!-- Note that component elements are nested corresponding to their
> parent-child relationships with each other -->
>
><!-- A "Server" is a singleton element that represents the entire JVM,
> which may contain one or more "Service" instances. The Server
> listens for a shutdown command on the indicated port.
>
> Note: A "Server" is not itself a "Container", so you may not
> define subcomponents such as "Valves" or "Loggers" at this level.
> -->
>
><Server port="8005" shutdown="SHUTDOWN" debug="0">
>
> <Listener className="org.apache.ajp.tomcat4.config.ApacheConfig"
> modJk="usr/local/apache2/modules/mod_jk.so" />
>
> <!-- Uncomment these entries to enable JMX MBeans support -->
> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
> debug="0"/>
> <Listener
>className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
> debug="0"/>
>
> <!-- Global JNDI resources -->
> <GlobalNamingResources>
>
> <!-- Test entry for demonstration purposes -->
> <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
>
> <!-- Editable user database that can also be used by
> UserDatabaseRealm to authenticate users -->
> <Resource name="UserDatabase" auth="Container"
> type="org.apache.catalina.UserDatabase"
> description="User database that can be updated and saved">
> </Resource>
> <ResourceParams name="UserDatabase">
> <parameter>
> <name>factory</name>
> <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
> </parameter>
> <parameter>
> <name>pathname</name>
> <value>conf/tomcat-users.xml</value>
> </parameter>
> </ResourceParams>
>
> </GlobalNamingResources>
>
> <!-- A "Service" is a collection of one or more "Connectors" that share
> a single "Container" (and therefore the web applications visible
> within that Container). Normally, that Container is an "Engine",
> but this is not required.
>
> Note: A "Service" is not itself a "Container", so you may not
> define subcomponents such as "Valves" or "Loggers" at this level.
> -->
>
> <!-- Define the Tomcat Stand-Alone Service -->
> <Service name="Tomcat-Standalone">
>
> <!-- A "Connector" represents an endpoint by which requests are received
> and responses are returned. Each Connector passes requests on to
>the
> associated "Container" (normally an Engine) for processing.
>
> By default, a non-SSL HTTP/1.1 Connector is established on port
>8080.
> You can also enable an SSL HTTP/1.1 Connector on port 8443 by
> following the instructions below and uncommenting the second
>Connector
> entry. SSL support requires the following steps (see the SSL
>Config
> HOWTO in the Tomcat 4.0 documentation bundle for more detailed
> instructions):
> * Download and install JSSE 1.0.2 or later, and put the JAR files
> into "$JAVA_HOME/jre/lib/ext".
> * Execute:
> %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
>(Windows)
> $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA
>(Unix)
> with a password value of "changeit" for both the certificate and
> the keystore itself.
>
> By default, DNS lookups are enabled when a web application calls
> request.getRemoteHost(). This can have an adverse impact on
> performance, so you can disable it by setting the
> "enableLookups" attribute to "false". When DNS lookups are
>disabled,
> request.getRemoteHost() will return the String version of the
> IP address of the remote client.
> -->
>
>
> <!-- Define an AJP 1.3 Connector on port 8009 -->
>
> <Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
> port="8009" minProcessors="5" maxProcessors="75"
> acceptCount="10" debug="0"/>
>
> <!-- An Engine represents the entry point (within Catalina) that
>processes
> every request. The Engine implementation for Tomcat stand alone
> analyzes the HTTP headers included with the request, and passes
>them
> on to the appropriate Host (virtual host). -->
>
> <!-- Define the top level container in our container hierarchy -->
> <Engine name="Standalone" defaultHost="www.roamware.com" debug="0">
>
> <!-- The request dumper valve dumps useful debugging information about
> the request headers and cookies that were received, and the
>response
> headers and cookies that were sent, for all requests received by
> this instance of Tomcat. If you care only about requests to a
> particular virtual host, or a particular application, nest this
> element inside the corresponding <Host> or <Context> entry
>instead.
>
> For a similar mechanism that is portable to all Servlet 2.3
> containers, check out the "RequestDumperFilter" Filter in the
> example application (the source for this filter may be found in
> "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
>
> Request dumping is disabled by default. Uncomment the following
> element to enable it. -->
> <!--
> <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
> -->
>
> <!-- Global logger unless overridden at lower levels -->
> <Logger className="org.apache.catalina.logger.FileLogger"
> prefix="catalina_log." suffix=".txt"
> timestamp="true"/>
>
> <!-- Because this Realm is here, an instance will be shared
>globally -->
>
> <!-- This Realm uses the UserDatabase configured in the global JNDI
> resources under the key "UserDatabase". Any edits
> that are performed against this UserDatabase are immediately
> available for use by the Realm. -->
> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
> debug="0" resourceName="UserDatabase"/>
>
>
> <!-- Define the default virtual host -->
> <Host name="www.roamware.com" debug="0" appBase="webapps"
> unpackWARs="true" autoDeploy="true">
>
> <Listener className="org.apache.ajp.tomcat4.config.ApacheConfig"
>append="true"
> forwardAll="false" modJk="usr/local/apache2/modules/mod_jk.so"
> workersConfig="/usr/local/apache2/conf/workers.properties" />
>
> <!-- Logger shared by all Contexts related to this virtual host. By
> default (when using FileLogger), log files are created in the
>"logs"
> directory relative to $CATALINA_HOME. If you wish, you can
>specify
> a different directory with the "directory" attribute. Specify
>either a
> relative (to $CATALINA_HOME) or absolute path to the desired
> directory.-->
> <Logger className="org.apache.catalina.logger.FileLogger"
> directory="logs" prefix="roamware_log." suffix=".txt"
> timestamp="true"/>
>
> <!-- Define properties for each web application. This is only
>needed
> if you want to set non-default properties, or have web
>application
> document roots in places other than the virtual host's appBase
> directory. -->
>
> <!-- Tomcat Root Context -->
> <Context path="" docBase="ROOT" debug="0"/>
>
> <!-- Tomcat Roamware Context -->
> <!-- To support the path="" we have a symbolic link called rwsite in
>ROOT to rwsite -->
>
> <Context path="/rwsite" docBase="rwsite" debug="0"/>
>
> </Host>
>
> </Engine>
>
> </Service>
>
> <!-- The MOD_WEBAPP connector is used to connect Apache 1.3 with Tomcat
>4.0
> as its servlet container. Please read the README.txt file coming with
> the WebApp Module distribution on how to build it.
> (Or check out the "jakarta-tomcat-connectors/webapp" CVS repository)
>
> To configure the Apache side, you must ensure that you have the
> "ServerName" and "Port" directives defined in "httpd.conf". Then,
> lines like these to the bottom of your "httpd.conf" file:
>
> LoadModule webapp_module libexec/mod_webapp.so
> WebAppConnection warpConnection warp localhost:8008
> WebAppDeploy examples warpConnection /examples/
>
> The next time you restart Apache (after restarting Tomcat, if needed)
> the connection will be established, and all applications you make
> visible via "WebAppDeploy" directives can be accessed through Apache.
> -->
>
> <!-- Define an Apache-Connector Service -->
><!--
> <Service name="Tomcat-Apache">
>
> <Connector className="org.apache.catalina.connector.warp.WarpConnector"
> port="8008" minProcessors="5" maxProcessors="75"
> enableLookups="true" appBase="webapps"
> acceptCount="10" debug="0"/>
>
> <Engine className="org.apache.catalina.connector.warp.WarpEngine"
> name="Apache" debug="0">
>
> <Logger className="org.apache.catalina.logger.FileLogger"
> prefix="apache_log." suffix=".txt"
> timestamp="true"/>
>
> <Realm className="org.apache.catalina.realm.MemoryRealm" />
>
> </Engine>
>
> </Service>
>-->
>
></Server>
>
>David Wynter
>
>roamware Ltd.
>(+44) (0) 208 922 7539 B.
>(+44) (0) 7879 605 706 M.
>david@roamware.com
>
>
>--
>To unsubscribe, e-mail: <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>