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

Reply via email to