6

ColdFusion 10でColdFusionインスタンスの名前(「cfusion」など)を取得するにはどうすればよいですか?

10より前では、jrunjavaオブジェクトを使用してこれを行うことができます。

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

#jr.getServerName()#

しかし、JrunがTomcatに置き換えられたので、インスタンス名を取得する新しい方法を見つける必要があります。

admin apiを使用して実行できることは知っていますが、セキュリティの問題のために機能しません。

4

3 に答える 3

5

CF10の管理APIには「ランタイム」コンポーネントがあります。次のコードスニペットを使用してインスタンス名を取得できます。

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

getServerName()これにより、コンポーネントで使用されたのと同じ値が返されjrunx.kernel.JRunます。

于 2012-05-22T06:56:27.510 に答える
5

サーバースコープを見てください。server.coldfusion.rootdir に値があります。CF10 では、これはインスタンスのディレクトリです。たとえば、私の Mac の「cfusion」インスタンスの場合、この値は /Applications/ColdFusion10/cfusion です。パスの最後のディレクトリ namd を取得できます。これがインスタンスの名前です。正確にはエレガントではありませんが、必要なものが得られるかもしれません。

于 2012-04-11T13:49:23.737 に答える
-5

これはうまくいくはずです:

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