Thanks for your Hints.

Today I deployed the same execise (Test-03) onto the localhost at the VPS server having Tomcat 5.3.35 running.
So it works like the localhost running Tomcat 6.x. It is the same procedure:

- Deploying WAR
- Stop and Start
- Confirming that www.domain.com/Test-03/prg1.jsp and www.domain.com/Test-03/subdir/prg2.jsp work fine
- Copy all contents undet Test-03 to the appBase directory
- Undeploy Test-03
- Check if www.domain.com/prg1.jsp and www.domain.com/subdir/prg2.jsp work fine

So the problem is only on virtual hosts. I changed the server.xml file for that virtual host replacing the appBase to "." instead of being the same as the docBase. Also changed
the docBase to see if results are different. No luck !

So configuration actually is as follows:

<Host name="server.com" appBase="/home/server/public_html">
<Alias>www.server.com</Alias>
<Context path="" reloadable="true" docBase="." debug="1"/>
<Context path="/manager" debug="0" privileged="true"
              docBase="/usr/local/jakarta/tomcat/server/webapps/manager">
</Context>
</Host>

Also tried to deploy that same WAR renamed as ROOT.war, but it doesn't work.
I got the following error:

FAIL - War file "ROOT.war" cannot be uploaded if context is defined in 
server.xml


Now the only difference on procedure at VPS server (localhost vs virtual host) is that I do not copy/replace the web.xml (under Test-03 directory) file to the ROOT folder (meaning Tomcat_Home/webapps)
when doing the same excercise with the localhost.
Also, the localhost has a ROOT directory, the virtual host NOT.

Both JSP programs are ver simple and only call the same class Stringbeans, only prg1.jsp works.

Looking to the work directory (Catalina/domain.com) after undeployed Test-03 for domain.com:
I can see directory subdir, and under that: no files, only directories.

Chris


El 19/04/2012 02:25 a.m., Pid * escribió:
On 19 Apr 2012, at 01:12, Konstantin Kolinko<knst.koli...@gmail.com>  wrote:

2012/4/19 Chris Patterson<tom...@vittox.com>:
Dear Konstantin, thanks for asking, I will try to answer your questions

My experience level is relative, idea is to spend less time sharing your
experience.
I have installed Tomcat servers for many years mostly on Unix/Linux,
and allready have a CentOS 5.6 with Tomcat 6.x (default) on  a local server.

OK. Thank you for detailed answer. It makes more sense now.

I could deploy my "Dynamic Web Application" (eclipse language) named Test-03
from a
WAR format and it worked for both cases. _So it should not be the "code"._
Of course it is not a Web App, its only a Test.

Differences are:
Local host has Tomcat 6.x, VPS server has Tomcat 5.3.35
Local host has Java 1.6.0_22 / OpenJDK 64-Bit, VPS server has Java 1.6.0_29
/ Java Hotspot 64-Bit

I checked following files having basically the same default configuration:
server.xml, web.xml, context.xml

When deployed on the /local server/ using the Tomcat Manager
I see the following directories:

  docs
  examples
  host-manager
  manager
  ROOT
  sample
  Test-03
  Test-03.war

Under ROOT is working the Test with URLs:
  localhost:8080/prg1.jsp
  localhost:8080/subdir/prg2.jsp
If you have deployed the broken config you originally posted then
there is a good chance that subdir is being treated as a web
application and Jasper is looking for the class in a non-existent
WEB-INF/lib.


p




Also work fine under Test-03
    localhost:8080/Test-03/prg1.jsp
    localhost:8080/Test-03/subdir/prg2.jsp

The class files are respectively under ROOT/WEB-INF/classes and
Test-02/WEB-INF/classes
I just copied all content undet Test-03 to the ROOT folder and reloaded
(using the Manager)

There are two apparent differences with the above copy+reload
procedure, as compared with "clean" deploy:

1. Reload != (Start + Stop).

It is a more lightweight operation than stopping and then starting a
webapp. Maybe something went wrong there.


2. You have not cleared the work directory of the ROOT webapp.

So there might be previous compiled classes for those JSPs. Depending
on timestamps they will be not recompiled.  (E.g. if you replace a jsp
with an older copy of that jsp, it will not be recompiled. Check
whether the clock on the server has the correct time. Thought it is
easier to just clean the work directory for the webapp.)


The resource id for that "The value for the useBean class" message is
"jsp.error.invalid.bean".

It is thrown is in jasper.compiler.Generator#visit() when it visits
<jsp:useBean>  node if it cannot load the class specified in the
useBean tag.

http://svn.apache.org/viewvc/tomcat/tc5.5.x/tags/TOMCAT_5_5_35/jasper/src/share/org/apache/jasper/compiler/Generator.java?view=markup#l1199


You have to check that you did not forget to copy necessary supporting
classes and libraries. If that fails, try to write a simple jsp that
explicitly loads that class.

The same excersise on the VPS running CPanel for a domain like etrust.us
does only work for etrust.us/Test-03/prg1.jsp
When trying etrust.us/prg1.jsp it only works until trying
etrust.us/subdir/prg2.jsp,
then i get the error 500: JasperException: The value for the useBean class
___ attribute is invalid

Log file shows no more details about the issue.

As "main directory" I mean the docBase referenced in the server.xml file.
I have read the Servlet Specificacion (2.4) and did several changes to the
configuration files with no success.

Does someone here have any idea where to check some configuration ?


El 18/04/2012 12:08 p.m., Konstantin Kolinko escribió:
2012/4/18 Chris Patterson<tom...@vittox.com>:
More on this, now I think it is some configuration issue for the tomcat
server:

I am using eclipse to check both JSP files, and they work without any
problems
in my PC. When deploying to Tomcat 5.5.35 to a sub-directory like de
project
name
they also work fine. For example at www.domain.com/Test1/prg1.jsp and
www.domain.com/Test1/subdir/prg2.jsp.

If I copy them to the main directory with a shell command:
cp -pr * .. from the Test1 directory and undeploy the Test1 application
then only www.domain.com/prg1.jsp works and but the second one,
www.domain.com/subdir/prg2.jsp gives me the same (500) error:

/prg2.jsp(26,0) The value for the useBean class attribute
jdbcbean.Stringbean is invalid.


Is this like a BUG ? Or perhaps something about the Java version ?
I have the following version running on a CentOS release 5.8:
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02, mixed mode)

Hope this info help a little more to find a solution.


What is your experience level?

Do you know what a "web application" is?
Have you read The Servlet specification, Documentation, etc.?

Do you know where your classes must be put in a Web application?

Your "main directory" terminology does not make sense.

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org


Reply via email to