Относительный / Абсолютный путь 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?

1 ответ

Решение

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

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

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

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

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

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

Другие вопросы по тегам