Ошибка coldfusion-10: значение, возвращаемое функцией init_datetype, не имеет типа pagedatetype_cfc.

В coldfusion 10 я получаю следующую ОШИБКУ: "Произошло исключение при вызове метода обработчика событий из Application.cfc. Имя метода: onRequestStart."

Основная причина:Подробности: "Если имя компонента указано как тип возвращаемого значения, возможно, файл определения для компонента не найден или недоступен".

RootCause:Message: «Значение, возвращаемое функцией init_pagedatetype_ver04, не имеет типа gg2_pagedatetype_cfc_ver04».

*Есть идеи, что я делаю неправильно? Вот связанные файлы и соответствующий код *

ФАЙЛ №1: "\application.cfc"

 <cfset THIS.mappings["/inc_CFC"]= getDirectoryFromPath(getCurrentTemplatePath())
        & "/inc_CFC" >

<cffunction name="onRequestStart">

  <!--- INIT page structure --->
  <cfset REQUEST.paths.msg= (getDirectoryFromPath(getCurrentTemplatePath())
         & "inc_CFC") >

  <cfset REQUEST.gg2_pageDataStruct= 0 >

  <cfinvoke 
     returnvariable="REQUEST.gg2_pageDataStruct" 
     component="inc_CFC.gg2_pagedatatype_cfc_ver04" 
     method="init_pagedatetype_ver04"></cfinvoke>
  . . . 
  </cffunction> 

ФАЙЛ №1: "\inc_CFC\gg2_pagedatatype_cfc_ver04.cfc"

  <cfcomponent  output="false"  
    displayname="gg2_pagedatetype_cfc_ver04"
    hint="Component/Class/Module that manages all business Data "  >
    . . . 
    <cffunction name="init_pagedatetype_ver04"
      returntype="gg2_pagedatetype_cfc_ver04"  output="false" >

     <cfset var LOCAL=StructNew()>

     <!--- Do nothing but create blank object / component for now.  Later on 
       user will call other functions to init parts of structure/component --->

     <cfreturn THIS> 
   </cffunction>

   . . . 
  </cfcomponent>

person user778574    schedule 28.06.2012    source источник


Ответы (1)


У вас просто есть некоторые орфографические ошибки, взгляните на это:

gg2_pagedatatype_cfc_ver04
gg2_pagedatetype_cfc_ver04

Один говорит data, а другой говорит date. Убедитесь, что все ваши имена и типы совпадают правильно, и ваша ошибка исчезнет.

person Dan Short    schedule 28.06.2012
comment
спасибо, я проверю это... Я просматривал это десятки раз и даже не видел этого... Я удивлен, что coldfusion не выдал мне ошибку Функция не найдена? Возможно, подсознательно, в глубине души, я подумал, что если бы имя функции не совпадало, я бы получил другую ошибку. В следующий раз, когда я получу эту ошибку, я обязательно удалю компонент=имя из cfinvoke и скопирую и вставлю имя из cffunction name=... Я звоню! - person user778574; 28.06.2012
comment
Исправление: В следующий раз, когда я получу эту ошибку, я удостоверюсь, используя копирование и вставку, что: (1) что отображаемое имя cfcomponent совпадает с имя файла файла .cfc и (2) что тип возврата функции cffunction соответствует отображаемому имени функции cfcomponent - person user778574; 28.06.2012
comment
СПАСИБО. Это сработало. Я применил свое второе исправление комментария, и ошибка исчезла. - person user778574; 28.06.2012
comment
Отлично, не забудьте отметить мой ответ как ответ. Я обнаружил ошибку, скопировав имя файла в Safari, нажав Cmd+F для поиска и вставив его. Было найдено только два совпадения, поэтому я знал, что у вас есть ошибки. Copy/Paste определенно ваш друг. - person Dan Short; 28.06.2012
comment
Просто не беспокойтесь об аргументе отображаемого имени. Это бесполезно. Это было только ваше имя файла / возвращаемые типы, которые доставляли вам проблемы здесь. Я бы также серьезно переосмыслил вашу стратегию именования CFC. Имя CFC должно описывать какой-то объект... что, черт возьми, такое gg2_pagedatatype_cfc_ver04?? - person Adam Cameron; 28.06.2012
comment
Часть 3: Шлюзы и источники данных - person user778574; 01.07.2012
comment
gg2_pagedatatype_cfc_ver04 — это ООП-объект coldfusion. Это имя моего объекта Datasource. У меня также есть шлюз с именем gg2_pagedatamgr_cfc_ver04. Он основан на Части 3: Шлюзы и источники данных с сайта Learn.objectdirectionalcoldfusion.org. gg2 — это URI моего веб-сайта. pagedatatype — это одноэлементный объект, который хранит конкретную информацию о приложении для одного сеанса (и указывает на одиночный элемент) в одном классе. ver_04 необходим, потому что я нахожусь на общем веб-хостинге и не могу перезагрузить сервер coldfusion, поэтому, переименовав версию в cfc, coldfusion вынужден снова получить cfc. - person user778574; 01.07.2012
comment
gg2_pagedatamgr_cfc_ver04 — это объект шлюза, который содержит всю бизнес-логику сеанса. - person user778574; 01.07.2012