2010-01-18 55 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