Источники данных ColdFusion 9 по умолчанию относятся к корпоративным

У меня есть экземпляр ColdFusion, работающий под управлением предприятия, но по какой-то причине он игнорирует локальный источник данных. Он будет подключаться только в том случае, если я поставлю источник данных на уровень предприятия. Я даже пробовал следующий код, и он возвращает только те источники данных, которые объявлены в диспетчере экземпляров, а не сам экземпляр.

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

Любая помощь будет принята с благодарностью.


person Charlie    schedule 09.08.2011    source источник
comment
Вы абсолютно уверены, что сайт, на котором вы запускаете код, связан с экземпляром, для которого вы ожидаете получить источники данных? Если вы перейдете на нужный вам сайт/cfide/administrator, будет ли это тот экземпляр, который вы ожидаете? Я предполагаю, что ваш сайт на самом деле работает в экземпляре cfusion по умолчанию, а не в дочернем экземпляре, который вы ожидаете.   -  person Dan Short    schedule 10.08.2011


Ответы (1)


Это должно помочь вам выяснить, на каком экземпляре вы находитесь:

<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>
person Mike Causer    schedule 15.12.2011