转载.....
虚拟目录与WebApp真实目录的关系。Tomcat是以虚拟目录来识别Webapp的,比如:http://localhost:8080/test/index.jsp.
假设对应的真实文件在G:\jb\demopro\test\index.jsp.
(此刻假设index.jsp里使用了自己的Bean类,且放在G:\jb\demopro\test\WEB-INF\classes\mybean\db_bean.class)tomcat的server.xml里配置是:
<Context path="/test" docBase="G:\jb\demopro\test" debug="0" reloadable="true" crossContext="true" /> 
然后假如把server.xml配置改成,
<Context path="/demopro" docBase="G:\jb\demopro" debug="0" reloadable="true" crossContext="true" /> 
在浏览器里输入:http://localhost:8080/demopro/test/index.jsp.
页面会出错,提示找不到类文件。而把server.xml配置改成,<Context path="/demopro/test" docBase="G:\jb\demopro\test" debug="0" reloadable="true" crossContext="true" /> 
再在浏览器里输入:
http://localhost:8080/demopro/test/index.jsp
则页面显示正常。(注意:每次修改server.xml之后需要重新启动Tomcat)。由此可以知道,Tomcat在得到对多层虚拟目录的http请求之后,先是去寻找server.xml里设置的虚拟路径对应的真实目录,如果找不到,则会到虚拟目录的上层目录去找其下面存在的目录。例如假设
真实目录为:
G:\jb\demopro\test;
server.xml里配置为:
<Context path="/demopro" docBase="G:\jb\demopro" debug="0" reloadable="true" crossContext="true" /> 
,<Context path="/demopro/test" docBase="G:\jb" debug="0" reloadable="true" crossContext="true" /> 
这个时候访问/demopro/test是不会对应到G:\jb\demopro\test下的。  
或者:
(1):在浏览器中输入:http://localhost:8080/manager/install?path=/examples&war=file:/c:\examples
就会将按目录结构组织的WAR部署(2):如果输入:http://localhost:8080/manager/install?path=/examples&war=jar:file:/c:\examples.war!/
就会将按压缩包组织的WAR部署,注意此url后半部分一定要有!/号。部署后就可以用 http://localhost:8080/examples访问了。在浏览器中输入:http://localhost:8080/manager/remove?path=/examples
就会撤销刚才部署的应用程序。

解决方案 »

  1.   

    javabean 的.class 文件应放在
    yourDirectory\web-inf\classes\下
    yourDirectory是你的虚拟文件对应的真实文件架
      

  2.   

    应该放在
    youDir\web-inf\classes\下
    youDir是你的虚拟文件架对应的真实文件架
      

  3.   

    可是我是这样放的啊,但是就是调试不出来,错误代号500,The server encountered an internal error () that prevented it from fulfilling this request.