Относительный / абсолютный путь CFC в Open BlueDragon

Я пытаюсь перенести существующую кодовую базу ColdFusion с Adobe CF8 на OpenBD. В моих файлах есть что-то вроде этого:

/cfc/one.cfc
/cfc/two.cfc

/app/page.cfm

В CF8 у меня было отображение cfc на / cfc, а в page.cfm у меня было:

<cfajaxproxy cfc="cfc.one" jsclassname="oneCfc">
<cfajaxproxy cfc="cfc.two" jsclassname="twoCfc">

а затем в Javascript я мог бы вызвать CFC, используя:

var c = new oneCfc();

... и жизнь была хорошей.


Однако в Open BD (v2.0.3b) я не могу вызывать функции CFC из Javascript. Прокси объявлен, как и раньше, и я могу создать объект в Javascript, но когда я пытаюсь вызвать функцию, я получаю следующую ошибку в инструментах разработчика моего браузера:

POST http://127.0.0.1:8080/app/cfc/one.cfc 404 (Not Found) 

Похоже, что он использует относительный путь в Javascript, когда пытается вызвать функцию, даже если объект уже создан.

CFC действителен в соответствии с OpenBD (я могу перейти к ./cfc/one.cfc?wsdl, и я могу вызывать на нем функции, используя ./cfc/one.cfc?method=getData и т. Д.). Кажется, не имеет значения, определено ли у меня отображение в OpenBD или нет.

Единственный обходной путь, который, кажется, работает, - это использовать CFC в той же функции, что и вызывающий файл CFM, но это не очень хорошее решение, когда я хочу повторно использовать код CFC со многих разных страниц.

У кого-нибудь есть CFC в других каталогах, работающих под OpenBD?


person Juffy    schedule 11.12.2012    source источник


Ответы (1)


Для справки в будущем: эта проблема была решена (более или менее) в OpenBD 3.0, выпущенном в начале марта 2013 года.

В версии 3.0 код, который создает файл прокси AJAX .js, был изменено, чтобы включить строки:

javascript.append( " this.remoteCFC = '" );
javascript.append( CFC.replace('.', '/') );
javascript.append( ".cfc';\r\n" );

Хотя он по-прежнему не принимает во внимание какие-либо сопоставления на стороне сервера, он, по крайней мере, позволяет вам ссылаться на путь, который не является дочерним по отношению к текущей странице .cfm:

<cfajaxproxy cfc=".cfc.one" jsclassname="cfcOne">

(обратите внимание на начальный ., который OpenBD заменяет на /. В предыдущих версиях OpenBD это приводило бы к ошибке)

person Juffy    schedule 04.04.2013