jsp部署无法找到类错误

来源:互联网 发布:网络监控防雷器 编辑:程序博客网 时间:2024/05/17 00:17

      把jsp项目移到服务器上,发现出错了,但是该项目在eclipse中没有问题。报的错误就是:Only a type can be imported. xxx.XXX resolves to a package,意思就是说你jsp页面上引用的那个类不存在,可是eclipse测试的时候却正常,其实这样JSP已经是访问到的了,只是找不到类。

       因为放在服务器中,为了方便管理,服务器管理员建多了个子目录,而tomcat的context没有改变,每一个子文件夹都会被tomcat当作一个独立的虚拟应用的,所以每个子文件夹下的jsp页面访问的时候,都会在它的同一层找WEB-INF里面的class,这样当然找不到了,只有刚巧放在根目录下的jsp文件能访问。

解决办法:修改tomcat目录下conf目录中的server.xml文件,在Host中添加content内容

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
<Context path="/demo/WebContent" docBase="E:\\apache-tomcat-6.0.36\\webapps\\demo\\WebContent" reloadable="true"></Context>

</Host>

    其中E:\\apache-tomcat-6.0.36\\webapps\\demo是我的项目在tomcat中的路径,jsp文件放置在WebContent目录下。

      只要加多这个context就可以了,其中path为访问路径,docBase为项目文件根目录所在。这样应用的文件路径通过docBase来指定,这样就不会再产生找不到class的问题了。


  部署的时候将build目录下的classes目录以及使用的外部jar包(放到lib目录)拷贝到WebContent目录下,同时修改META-INF目录下的MANIFEST.MF内容改为Class-Path: WEB-INF/classes