You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mule 4/Dataweave 2中正确获取服务器主机名与IP地址

Mule 4 / DataWeave 2 获取服务器主机名与IP地址解决方案

你调用prop("server.host")、prop("server.ip")返回null的原因是这两个属性不属于Mule Runtime或JVM默认提供的系统属性,没有预先配置的情况下无法直接通过prop()方法读取。原有代码中的prop("user.timezone")是JVM自带的系统属性,可正常返回取值。

可以直接在DataWeave 2中调用JDK内置的java.net.InetAddress类的方法获取本地主机信息,示例代码如下:

output application/json
import getLocalHost from java!java::net::InetAddress
---
{
    "payload" : payload,
    "host": getLocalHost().getHostName(),
    "ip": getLocalHost().getHostAddress(),
    "timezone": prop("user.timezone")
}
  • 若应用部署在CloudHub环境,该方法获取的是Worker内部容器的主机名和内网IP,如需公网IP需要额外调用公网IP查询接口实现。
  • 若服务器存在多网卡配置,getHostAddress()默认返回主机名绑定的IP地址,如需获取所有网卡的IP列表,可调用getLocalHost().getAllAddresses()方法遍历取值。
  • 如果你希望继续使用prop()方法读取这两个属性,可以在Mule应用的JVM启动参数中添加对应配置:-Dserver.host=自定义主机名 -Dserver.ip=自定义IP地址,原有代码即可正常返回数值。

内容的提问来源于stack exchange,提问作者hpandalai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:54:03