伺服器虛擬主機,非根目錄jsp檔案的引包報錯
阿新 • • 發佈:2018-12-22
最近把寫好的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 "%r" %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 "%r" %s %b" />
</Host>