在ColdFusion 10中获取实例名称

时间:2012-04-11 11:45:57

标签: tomcat coldfusion coldfusion-10

如何在 ColdFusion 10 中获取ColdFusion实例的名称(例如“cfusion”)?

在10之前,您可以使用jrun java对象:

<cfobject action="create" type="java" class="jrunx.kernel.JRun" name="jr">

#jr.getServerName()#

但是由于Jrun已被Tomcat取代,我需要找到一种获取实例名称的新方法。

我知道可以使用admin api完成,但由于安全问题,这对我不起作用。

3 个答案:

答案 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() />