現有Java站點設計爲在tomcat的「/」下運行,並且有許多固定絕對路徑的特定引用,例如「/ dir/dir/page 」。將「/」站點遷移到Java EE包時處理上下文路徑引用
想要將其遷移到Java EE打包,其中站點需要在上下文根目錄下運行,例如, 「/ dir/dir/page」變爲「/ my-context-root/dir/dir/page」
現在,使用ServletRequest.getContextPath()可以輕鬆實現上下文根,但這仍然意味着很多代碼更改以遷移大型代碼庫。這些參考文獻中的大多數都是文字HTML。
我已經嘗試過使用servlet過濾器對oubound HTML進行重寫,並且這似乎工作正常。但它確實帶來了一些開銷,我不認爲它是一個永久的解決方案。 (有關servlet過濾方法,請參閱EnforceContextRootFilter-1.0-src.zip)。
有沒有更好的方法來解決這個問題?任何明顯的我失蹤?所有評論贊賞!
我意識到可能是明顯的,但JavaEE應用程序仍然可以部署到根上下文(/)。此配置通常在應用程序特定的部署文件(例如,jboss-web.xml,sun-web.xml)中處理。 – 2008-09-27 05:03:59
@jt好點,我確實問我是否錯過了任何明顯的;-)在我的情況下,我需要應用程序與其他應用程序一起部署在同一臺服務器上,並且不能佔用根環境(也不可以在另一個虛擬主機上運行)。 – tardate 2008-09-27 06:44:39