我有一个在企业下运行的ColdFusion实例,但由于某种原因它忽略了本地数据源。它只会在我将数据源放在企业级别时才会连接。 我甚至尝试了以下代码,它只返回在实例管理器中声明的数据源,而不是实例本身。
<cfset factory = createObject("java", "coldfusion.server.ServiceFactory")>
<cfset datasources = factory.getDataSourceService().getDatasources()>
<cfloop collection="#datasources#" item="dsnName">
#dsnName#<br>
</cfloop>
非常感谢任何帮助。
答案 0 :(得分:0)
这些可以帮助您找出您所在的实例:
<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>
如果您在获取数据源时遇到问题,可能需要先使用cf管理员密码进行身份验证,如下所示:
createObject('component','CFIDE.adminapi.administrator').login('your-password');
数据源服务上有一个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>