天天看點

tomcat中的虛拟目錄配置

在tomcat的server.xml中配置上下文:

<Context path="/test" docBase="E:/中文測試/WebRoot" debug="0" reloadable="true">

</Context>

配置好後tomcat報如下錯誤,無法啟動:

嚴重: Parse Fatal Error at line 130 column 56: Invalid byte 2 of 2-byte UTF-8 sequence.

org.xml.sax.SAXParseException: Invalid byte 2 of 2-byte UTF-8 sequence.

原因,xml檔案編碼問題,在解析時因為編碼不正确抛異常。

解決方法:

将server.xml中的<?xml version='1.0' encoding='utf-8'?>改為<?xml version='1.0' encoding='gbk'?>

關于虛拟目錄配置中的屬性

<Context path="/test" docBase="E:/中文測試/WebRoot" debug="0" reloadable="true">

</Context>

其中的path中是不能包含中文的,因為java不支援中文package

常用屬性:

className

指定實作了org.apache.catalina.Context接口的類名。如果沒有指定類名,将使用标準的實作。标準的實作類是org.apache. catalina.core.StandardContext

cookies

訓示是否将Cookie應用于Session,預設值是true

crossContext

如果設定為true,在應用程式内部調用ServletContext.getContext()将成功傳回運作在同一個虛拟主機中的其他Web應用程式的請求排程器。在注重安全的環境中,将該屬性設為false,那麼getContext()将總是傳回null。預設值是false

docBase

指定Web應用程式的文檔基目錄或者WAR檔案的路徑名。可以指定目錄的或WAR檔案的絕對路徑名,也可以指定相對于Host元素的appBase目錄的路徑名。該屬性是必需的

path

指定Web應用程式的上下文路徑。在一個特定的虛拟主機中,所有的上下文路徑都必須是唯一的。如果指定一個上下文路徑為空字元串(""),則定義了這個虛拟主機的預設Web應用程式,負責處理所有的沒有配置設定給其他Web應用程式的請求

reloadable

如果設定為ture,Tomcat伺服器在運作時,會監視WEB-INF/classes和WEB-INF/lib目錄下類的改變,如果發現有類被更新,Tomcat伺服器将自動重新加載該Web應用程式。這個特性在應用程式的開發階段非常有用,但是它需要額外的運作時開銷,是以在産品釋出時不建議使用。該屬性的預設值是false

unpackWAR

如果為true,Tomcat在運作Web應用程式前将展開所有壓縮的Web應用程式。預設值是true