服务器虚拟主机,非根目录jsp文件的引包报错

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Z201220122012/article/details/78815343

最近把写好的JEE项目上传到服务器后,发现所有在文件夹中的jsp页面
在页头部分用<%@page import=”com.xxxx.dao.xxx”%>
导入类后,再浏览器中打开这个jsp页面时会出现
会出现500报错only a type can be imported: XXX resolves to package
项目根目录

发现这个错误后,去百度了好久,终于受到了这篇文章的启发:
http://blog.csdn.net/PengYuZhu/article/details/5868361

原来服务器 /usr/local/tomcat/conf/vhost 目录下的虚拟主机配置文件中是这么写的

<Host name="www.xxx.cc" appBase="/data/wwwroot/www.xxx.cc" unpackWARs="true" autoDeploy="true">
  <Context path="" docBase="/data/wwwroot/www.xxx.cc" reloadable="false" crossContext="true"/>
  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    prefix="www.xxx.cc_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

在标签的属性中,appBase这个属性若填写了路径,tomcat会认为
这个目录下的每一个文件夹,都是一个独立的环境
所以jsp页面去引用其他编译好的class文件时就会报错

所以经过修改后,将标签中的appBase的值置空后,重启tomcat服务器
再次访问原来的页面就可以了,错误完美解决

<Host name="www.xxx.cc" appBase="" unpackWARs="true" autoDeploy="true">
  <Context path="" docBase="/data/wwwroot/www.xxx.cc" reloadable="false" crossContext="true"/>
  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    prefix="www.xxx.cc_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

猜你喜欢

转载自blog.csdn.net/Z201220122012/article/details/78815343