如何在 ColdFusion 10 中获取ColdFusion实例的名称(例如“cfusion”)?
在10之前,您可以使用jrun java对象:
<cfobject action="create" type="java" class="jrunx.kernel.JRun" name="jr">
#jr.getServerName()#
但是由于Jrun已被Tomcat取代,我需要找到一种获取实例名称的新方法。
我知道可以使用admin api完成,但由于安全问题,这对我不起作用。
答案 0 :(得分:5)
查看服务器范围。 server.coldfusion.rootdir有一个值。在CF10上,这是实例的目录。因此,对于我的Mac上的“cfusion”实例,此值为/ Applications / ColdFusion10 / cfusion。您可以获取路径中的最后一个目录namd,这是实例的名称。不完全优雅,但可能会得到你所需要的。
答案 1 :(得分:5)
CF10中的Admin API中有一个“运行时”组件。您可以使用以下代码片段获取实例名称:
var runtime = createObject("component", "CFIDE.adminapi.runtime");
instance = runtime.getInstanceName();
这应该返回与getServerName()
组件中常用的jrunx.kernel.JRun
相同的值。
答案 2 :(得分:-5)
这应该有效:
<cfset inetAddressObj = createObject("java", "java.net.InetAddress") />
<cfset machineName = inetAddressObj.localhost.getCanonicalHostName() />