6

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

Pre-10 你可以通过使用 jrun java 对象来做到这一点:

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

#jr.getServerName()#

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

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

4

3 回答 3

5

查看服务器范围。server.coldfusion.rootdir 中有一个值。在 CF10 上,这是实例的目录。例如,对于我的 Mac 上的“cfusion”实例,这个值是 /Applications/ColdFusion10/cfusion。您可以获取路径中的最后一个目录 namd,这就是实例的名称。不完全优雅,但可能会为您提供所需的东西。

于 2012-04-11T13:49:23.737 回答
5

CF10 的管理 API 中有一个“运行时”组件。您可以使用以下代码片段获取实例名称:

var runtime = createObject("component", "CFIDE.adminapi.runtime");
instance = runtime.getInstanceName();

getServerName()这应该返回与组件中使用的相同的值jrunx.kernel.JRun

于 2012-05-22T06:56:27.510 回答
-5

这应该有效:

<cfset inetAddressObj = createObject("java", "java.net.InetAddress") />
<cfset machineName = inetAddressObj.localhost.getCanonicalHostName() />
于 2012-04-11T12:35:54.803 回答