2016-04-15 35 views
0

我已經做了很多關於我的問題的搜索,但讓我們面對它,我沒有找到解決方法。爲什麼Tomcat的基本網址不是我的應用程序網址,而針對我的應用程序?

我在Tomcat7應用程序服務器上部署了一個war文件。一切都好。但是,當我定位我的應用程序時,在開發者控制檯的幫助下,我可以看到我的所有鏈接(相對和絕對)都被破壞了。

因此,我的所有資產,內部API調用以及最終我的應用程序都無法訪問。

示例: 我的應用程序部署到:http://localhost:8585/myapp/。 我的鏈接(絕對和相對)是基於這個網址:http://localhost:8585/,那麼合乎邏輯的是,我的所有鏈接都被破壞了,因爲它們沒有針對正確的網址。

我想讓我的應用程序不依賴任何部署依賴關係,約束或常量。如果你能以一種合適的方式來幫助我解決我的問題,那將會很棒:閱讀我所需要做的就是重命名我的戰爭ROOT.war,以便在根級部署,讓我感到噁心。

有一個美好的一天,謝謝你, 最大。

+1

編寫的應用程序以這樣的方式,上下文路徑並不重要(即使用相對鏈接,或當需要絕對鏈接,使用在請求中使用的上下文路徑建立起來。 – Henry

回答

0

好了,你已經基本上3個選項來實現你(據我所知)想要什麼:

  1. 一個你不會閱讀:部署根上下文的應用;但是,正如您已經正確地指出的那樣,使應用程序部署依賴,並且當然並不總是可能的;

  2. ,你可以把一個代理(如Apache的HTTPD)在你的Tomcat的前面,設置一些重寫規則翻譯http://localhost/http://localhost:8585/myapp/ - 這有時是有用的,但在大多數情況太複雜,有時是不可能的(例如,由於到公司的部署策略);最好的一個:使用相關鏈接(如亨利在他的評論中所述)和ContextPath(在JSP中使用request.contextPath);

+0

謝謝約瑟夫· !正如我所說的,第一個選項是不可能的,第三個選項可能很有趣,但由於JSP並未在應用程序中使用,因此使用JSP標記實現解決方案將是不可能的。第二個選項非常有趣,我會專注於它,並儘快給你一個反饋! –

+0

不同的技術有不同的解決方案,使上下文相對路徑。在頁面/ js中硬編碼完整路徑不是明智的做法。 –

+0

應該有一種方法來使用上下文路徑在任何模板語言中,或者直接在servlet中。 –

相關問題