我在控制器中使用request.getServerName(),但我將我的功能轉移到服務中。我如何找到應用程序運行的主機名?如何從服務方法中找到我的Grails應用程序所在的主機名?
回答
如果您知道該服務方法將只從一個控制器動作叫那麼你可以使用Spring RequestContextHolder
才能到當前GrailsWebRequest
訪問,並從那裏request
對象。但是,從控制器傳入request
或者簡單地相信grailsApplication.config.grails.serverURL
--您理想的情況是服務不應直接依賴於Web層類。
如果您在不能使用注入grailsApplication
(構造函數,字段初始值設定項或靜態方法/閉包)的上下文中需要此信息,則可以通過grails.util.Holders
訪問配置。
我沒有在服務中使用grailsApplication運氣。我將def grailsApplication添加到服務中,但在調用方法時變量爲空。我也可能使用Bootstrap的服務,所以我不想依賴控制器上下文。 –
我認爲伊恩建議有問題的代碼(在服務中)不應該是訪問正在運行的東西的東西。也許通過電話將它傳遞給服務?會使這更多測試能夠這樣做。 – billjamesdev
這是一個很好的方法 - 我一直在嘗試:)但我需要一種方法來獲取BootStrap中的主機名以將其傳遞到服務中。 –
- 1. 當在grails應用程序中注入java服務時從grails服務中丟失的動態域方法
- 2. 如何在我的.bashrc中找到我所在的主機?
- 3. Windows服務或IIS中的主機應用程序服務器?
- 4. 如何找到哪個服務調用我的應用程序?
- 5. 如何從獨立的grails應用程序調用soap服務
- 6. 測量從應用程序到遠程主機上的服務器的數據
- 7. DNS污染 - 無法找到指定主機名的服務器
- 8. 在服務器smtp問題,無法找到主機名
- 9. 如何更改蔚藍web應用程序服務的主機名稱
- 10. 如何從不同的應用程序中遠程調用Grails Web服務
- 11. 從主要方法調用java應用程序中的Web服務
- 12. 如何使C#win服務應用程序引用主機上的程序集
- 13. 如何獲取計算機名稱(在Web應用程序中的主機名)?
- 14. 在小應用程序中找不到主要方法錯誤
- 15. 如何在VB6.0應用程序中調用WCF服務方法
- 16. 如何在Grails應用程序中選擇服務實現?
- 17. WCF服務主機無法找到任何服務元數據
- 18. 如何從我的ASP.NET應用程序中使用openAM服務?
- 19. 如何從Web應用程序調用Windows服務方法
- 20. 我如何找到蟾蜍遠程數據庫的主機名
- 21. 如何從一個Grails應用程序到其他Grails應用
- 22. 如何在grails web應用程序中使用grails REST Web服務?
- 23. 如何在C#中執行服務器應用程序方法
- 24. 無法檢索調用我的TCPListener服務的主機名
- 25. 無法連接我的android應用程序本地主機服務器
- 26. 控制檯中的主機WCF服務應用程序
- 27. 在主機服務器上設置域的根應用程序
- 28. 我如何知道客戶端服務器程序上的主機名
- 29. 從服務域名類中調用方法Grails 2.2.2
- 30. 如何從騾子服務器迴應我的應用程序
如果您正在部署到雲服務,祝您獲得可靠的東西。另一方面,如果您使用已知主機部署到已知服務器,則只需在配置中指定它們,而不嘗試動態查找它們。只需從Config中取出名稱即可。 – Gregg
你可以舉一個例子來設置開發vs配置的靜態路徑在配置?我會標記你的答案。 –
(在配置中設置,然後從服務方法中讀取...) –