2010-01-18 98 views
0

我目前正在開發一套web服務在Java中,主辦Axis2的運行在的WebLogic 10.3.0。這些webservices接收和返回SOAP消息。XML響應消息中的服務器名稱?

正如我的WebLogic一個集羣環境,我想有的WebLogic的服務器名稱(我使用管理控制檯配置的一個)返回在響應消息體。有沒有什麼辦法可以通過編程或配置管理控制檯

在此先感謝您的幫助解決這個問題!

回答

2

您可以通過本地主機獲取服務器的名稱是這樣的:

String hostname = InetAddress.getLocalHost().getHostName(); 

更新

以上的回報它運行在,所以它會給名稱的服務器的名稱web服務主機。

如果您需要在Web服務的前端服務器的名稱,你可以得到從請求:

String hostname = request.getRemoteHost(); 

應該做的伎倆。請注意,遠程主機名是套接字客戶端用於建立連接的內容,但不一定是DNS名稱。如果您需要DNS名稱,則可以使用:

String hostname = InetAddress.getByName(request.getRemoteAddr()).getHostName(); 

更新2

如果你的意思是不相關的服務器(溶液1)是轉發代理(溶液2),但一種邏輯羣集名稱,你可以定義在web.xml作爲上下文參數:

<context-param> 
    <param-name>clustername</param-name> 
    <param-value>OurPrettyCluster</param-value> 
</context-param> 

和閱讀在你的servlet:

ServletContext context = getServletContext(); 
String clustername = context.getInitParameter("clustername"); 

如果這也沒有幫助,您需要更新您的問題並描述您的羣集配置,因爲所提供的信息可以做得更多。

+0

這是服務器的het主機名,而不是weblogic服務器的名稱 – Salandur 2010-01-18 10:58:04

+0

正如Salandur所說,您的解決方案輸出機器(主機)名稱和IP地址。我想輸出WebLogic的服務器名稱,與主機名(部署WebLogic的服務器/物理機)不一致。 – XpiritO 2010-01-20 11:24:50

+0

在您的上一次更新(更新2)之後,我已將Web應用程序部署到具有2個實例的羣集環境中。我目前在管理服務器(非羣集)上使用「HttpClusterServlet」(負載平衡),然後將請求重定向到2個羣集實例之一。我想要的是返回處理請求的實例名稱(在羣集的config.xml文件中配置)(管理服務器在重定向時選擇的實例)。我想要使​​用具有羣集服務器名稱的羣集的config.xml文件。那可能嗎? – XpiritO 2010-01-21 10:06:11

相關問題