2011-08-09 7 views
0

私は、エンタープライズ環境で実行されているColdFusionインスタンスを持っていますが、なんらかの理由でローカルデータソースを無視しています。それは私が企業レベルでデータソースを置く場合にのみ接続します。 私は次のコードを試してみましたが、インスタンス自体ではなく、インスタンスマネージャで宣言されているデータソースのみを返します。ColdFusion 9データソースのデフォルトのエンタープライズ

<cfset factory = createObject("java", "coldfusion.server.ServiceFactory")> 
<cfset datasources = factory.getDataSourceService().getDatasources()> 
<cfloop collection="#datasources#" item="dsnName"> 
     #dsnName#<br> 
</cfloop> 

ご協力いただければ幸いです。

+0

コードを実行しているサイトが、データソースを取得しようとしているインスタンスに関連付けられていることは間違いありませんか? http:// thesiteyouwant/cfide/administratorに行くと、それはあなたが期待しているインスタンスですか?私の前提は、あなたのサイトは、あなたが期待している子インスタンスではなく、デフォルトの 'cfusion'インスタンスの下で実際に動作しているということです。 –

答えて

0

これらのあなたは、あなたが上であるインスタンスを見つけ出す手助けする必要があります

createObject('component','CFIDE.adminapi.administrator').login('your-password'); 
:あなたは問題あなたがそうのようなあなたのCF管理者パスワードで最初に認証が必要な場合がありますデータソースを取得した場合は

<cfscript> 
loc = {}; 
loc.machineName = createObject('java','java.net.InetAddress').localhost.getCanonicalHostName(); 
loc.machineName2 = createObject('java','java.net.InetAddress').localhost.getHostName(); 
loc.hostAddress = createObject('java','java.net.InetAddress').localhost.getHostAddress(); 
loc.instanceName = createObject('java','jrunx.kernel.JRun').getServerName(); 
writeDump(var: loc); 
</cfscript> 

便利なデータソースサービスにdatasourceExists()、verifyDatasource()、getDatasource()メソッドがあります。

<cfscript> 
loc = {}; 
loc.dss = createObject('java','coldfusion.server.ServiceFactory').getDataSourceService(); 
loc.datasources = loc.dss.getDatasources(); 
loc.exists = loc.dss.datasourceExists('your-dsn'); 
loc.verified = loc.dss.verifyDatasource('your-dsn'); 
loc.datasource = loc.dss.getDatasource('your-dsn'); 
writeDump(var: loc); 
</cfscript> 
関連する問題