On 6/27/2013 7:32 PM, Narahari 'n' Savitha wrote:
Here is what I tried.
CATALINA_HOME=/opt/narahari/paas/apache-tomcat-7.0.37
CATALINA_BASE=/opt/narahari/paas/adp-tomcat
In the $CATALINA_BASE/conf/Catalina/localhost/ptl#cts.xml file the
entry is
That's going to be much better than the previous.
How are you starting Tomcat?
Hopefully, you're following RUNNING.txt.
Something like this would be good:
export CATALINA_HOME=/opt/narahari/pass/apache-tomcat-7.0.37
export CATALINA_BASE=/opt/narahari/pass/adp-tomcat
$CATALINA_HOME/bin/startup.sh
In CATALINA_BASE, you have the following directory structure:
--- From RUNNING.txt ---
bin (with tomcat-juli.jar, and possibly setenv.sh)
conf (all of the conf files copied from $CATALINA_BASE/conf)
lib (most likely empty - you may have JDBC libraries here)
temp (empty)
work (empty)
webapps (where your WAR files go - see notes below)
<Context docBase="/opt/narahari/paas/webapps/ptl#cts.war"
antiResourceLocking="false" />
And this is not going to work - see below.
If you've copied the conf directory from $CATALINA_HOME into the conf
directory of $CATALINA_BASE (per RUNNING.txt instructions), you'll have
the following part in server.xml
<Host name="localhost"
appBase="webapps"
unpackWARs="true"
autoDeploy="true">
This says that relative to $CATALINA_BASE, your web applications can be
found in the webapps directory (shown above).
So place your WAR files (as you've done) in $CATALINA_BASE/webapps.
Thus if you have this setup, you no longer need your ptl.xml or
ptl#cts.xml context files. This of course makes life much easier for
deployment (now system independent).
In fact, it is an error to include them.
=====================
The contents of /opt/narahari/paas/webapps folder is
virtual@cdl-pid-p1-01:/opt/narahari/paas/webapps> ls
ptl#cts.war
This is fine, but it's not where your context file is pointing. Even if
it was, see the notes above.
===================
Now I start tomcat and I go check the logs to see if the ptl#cts.war
got deployed and I see the following
22:18:34,426 INFO [ConfigServlet]
com.alp.rev.config.ConfigServlet.init(): Entering.
22:18:34,427 INFO [ConfigServlet]
com.alp.rev.config.ConfigServlet.init(): FILEINPUTSTREAM VERSION 1.0
22:18:34,427 INFO [ConfigServlet]
com.alp.rev.config.ConfigServlet.init(): configFiles =
[/WEB-INF/faces-config.xml]
22:18:34,427 INFO [ConfigServlet]
com.alp.rev.config.ConfigServlet.init(): Full path to Faces
configuration file [null]
22:18:34,427 ERROR [ConfigServlet]
com.adp.rev.config.ConfigServlet.init(): Error trying to read file
[null]. Exception = [java.lang.NullPointerException]
java.lang.NullPointerException
at java.io.FileInputStream.<init>(FileInputStream.java:116)
at java.io.FileInputStream.<init>(FileInputStream.java:79)
at com.alp.rev.config.ConfigServlet.init(ConfigServlet.java:59)
at
org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5033)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5317)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
So as you can see I have the war file in the right
location(/opt/narahari/paas/webapps) and is pointed to in the
$CATALINA_BASE/conf/Catalina/localhost/ptl#cts.xml
However I dont see the war initializing correctly. It is trying to
find the faces-config.xml file which does not seem to be found. (yes
it is a part of the war file and exists under WEB-INF)
So it looks like app running out of the war file directly is not
working correctly. I am not sure why but I would want your expert
advice.
Regards, -Narahari
Yep, because now you've pointed your context file to an appBase (if
you've typo'ed your context file above).
So . . . here's the plan.
1. Create a CATALINA_BASE
a. Create the directory structure given above (from RUNNING.txt)
b. Copy the files over that you need to copy
1. tomcat-juli.jar from $CATALINA_HOME/bin tp $CATALINA_BASE/bin
2. all of the files from $CATALINA_HOME/conf into $CATALINA_BASE/conf
c. Put your WAR files in $CATALINA_BASE/webapps
d. Set the following environment variables:
1. export CATALINA_HOME=/opt/narahari/pass/apache-tomcat-7.0.37
2. export CATALINA_BASE=/opt/narahari/pass/adp-tomcat
3. export JRE_HOME=[wherever your JRE is]
e. Do NOT use any context files in conf/Catalina/localhost
f. run $CATALINA_HOME/bin/startup.sh
Again, you can only use docBase in your context files if the following
condition is met:
The WAR file or directory must be outside of the appBase directory
defined in the Host element of server.xml.
If you point to a directory, the directory must be an expanded web
application. If you have a WAR file, the docBase must point to the
complete path of the WAR file.
By following RUNNING.txt, you're actually moving the appBase to
/opt/narahari/paas/adp-tomcat/webapps, which is where you've put your
WAR files.
Given the normal (default) behavior of Tomcat, the WAR files should be
exploded in $CATALINA_BASE/webapps and happily run.
Your logs should be in $CATALINA_BASE/logs.
Your $CATALINA_HOME environment should remain blissfully pristine.
Hope that helps.
. . . . just my two cents.
/mde/
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org