代码之家  ›  专栏  ›  技术社区  ›  XpiritO

XML响应消息中的服务器名称?

  •  0
  • XpiritO  · 技术社区  · 15 年前

    我目前正在开发一套 WebServices 在Java中,主机上 AXIS2 跑过去 应用服务器 10 3.0。这些 Web服务 接收和返回SOAP消息。

    我有一个 群集的 环境对 应用服务器 ,我想要 应用服务器 的服务器名(我使用 管理控制台 )在响应消息正文中返回。是否有任何方法可以通过编程或在 管理控制台 是吗?

    提前感谢您帮助解决此问题!

    1 回复  |  直到 15 年前
        1
  •  2
  •   rsp    15 年前

    您可以通过如下方式通过localhost获取服务器的名称:

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

    更新

    上面返回运行它的服务器的名称,因此它将给出WebService主机的名称。

    如果在WebService前面需要服务器的名称,可以从请求中获得:

    String hostname = request.getRemoteHost();
    

    应该有技巧。注意远程主机名是socket客户机用来建立连接的,这不需要是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");
    

    如果这也没有帮助,那么您需要更新您的问题并描述您的集群配置,因为根据给出的信息,不能完成更多的工作。