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

标签 java web-services weblogic apache-axis httpresponse

我目前正在用 Java 开发一组网络服务,以托管在 WebLogic 10.3.0 上运行的 Axis2。这些网络服务接收并返回 SOAP 消息。

由于我在 WebLogic 上有一个集群环境,因此我希望获得 WebLogic 的服务器名称(我使用配置的服务器名称) 管理控制台)在响应消息正文中返回。有什么方法可以通过编程方式或通过管理控制台上的配置来执行此操作吗?

预先感谢您帮助解决此问题!

最佳答案

您可以通过本地主机获取服务器的名称,如下所示:

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

更新

上面返回了它运行的服务器的名称,因此它会给出 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");

如果这也没有帮助,您需要更新您的问题并描述您的集群配置,因为根据给出的信息,我们无法做更多的事情。

关于java - XML 响应消息中的服务器名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2085330/

相关文章:

weblogic - 在weblogic服务器上部署进程时出现超时错误

java - 安卓异常说明

java - 创建 JSONObject 时 org.json 未报告的异常

web - 将 Web 应用程序从 Tomcat 移动到 WebLogic 时库版本错误

c - C编译器Web服务

iphone - 使用 MySQL 的 CoreData Web 服务

java - 在应用服务器上部署多个应用程序(weblogic/websphere)

java - 防止使用相同的用户名和密码进行多次登录

java - 在创建高可用性应用程序时最常利用哪些设计模式?

java - 如何发送具有相同参数名称的请求参数