2012-04-12 1 views
0

Я сделал несколько попыток, проб и ошибок, но я не придумал решение этой проблемы.Coldfusion CFC Сопоставление с внешними каталогами с CFC, которые ссылаются на другие папки

У меня есть структура папок, как это (пример)

  • Application.cfc
  • Объекты \
    • Object.cfc
  • Utilities \
    • Util.cfc
  • API \
    • Resources \
      • index.cfm
    • Application.cfc

У меня есть один сайт, который указывает на папку API (HTTP://api.site.com), а другой указывает на общий корень (http://site.com)

От Api \ Resource \ index.cfm. Я пытаюсь createObject() для объектов \ Object.cfc. Я настроил сопоставление либо в CF Admin, либо в API \ Application.cfc с этим.mappings ["/ SiteRoot"] = "C: \ wwwroot". Внутри index.cfm я делаю createObject («компонент», «SiteRoot.Objects.Object»). Это правильно доступ к Object.cfc.

Проблема, с которой я сталкиваюсь, заключается в том, что она не выполняется, поскольку Object.cfc создает экземпляр Utilities \ Util.cfc только с помощью createObject («component», «Utilities.Util»). Ошибка в том, что Utilities.Util не найден.

В самом нижнем корне есть другие файлы, которые, очевидно, могут вызвать Object.cfc без проблем, поскольку он просто входит в папку «Утилиты».

Любые предложения Или мне действительно нужно просто сломать папку API из этого корня целиком?

Спасибо!

UPDATE Это не позволив мне ответить на мой собственный вопрос просто еще, но я хотел вывесить здесь раньше других подхватили.

Несмотря на reiniting приложение и перезапустить сервер приложений, один или два раза не было за работой. Затем, внезапно, он просто пошел и работал так, как я ожидал. Object.cfc мог правильно найти Util.cfc на основе относительного пути.

Я отдал предпочтение тем, кто ответил, поскольку они были вполне жизнеспособными альтернативами и решениями, и пошел бы с одним из них, если бы это не только начало работать. Демоны, говорю вам. Демоны.

Спасибо!

ответ

1

Я думаю, что я бы изменил ваш второй вызов объекта создания (утилит один) на createObject («SiteRoot.Utilities.Util»)?Удостовериться, что одно сопоставление «управляет» отправной точкой для всех объектов независимо от того, где экземпляр.

1

Если вы действительно не можете изменить свой код, просто создайте сопоставление ColdFusion под названием Утилиты, указанные в папке «Утилиты».