Я разрабатывал сайт в автономном режиме на установке WAMP и сериализировал бины с использованием функции SerializeJSON, например:
propertyImageBean = CreateObject("component","cfcs.beans.property_image").init();
propertyImageBean.setname("test");
propertyImageBean.setalt("test alt");
<cfoutput>#SerializeJSON(propertyImageBean)#</cfoutput>
Это все работает правильно, и приведенный выше код выдает:
{"name":"test","alt":"asdasd","id":""}
Однако, когда я загружаю свои файлы на действующий сайт, ответом является просто пустой объект:
{}
Локальная версия работает на CF9, а версия prod на CF8, так что, вероятно, проблема в этом.
Есть идеи?
Спасибо
EDIT:
<cfscript>
propertyImageBean = CreateObject("component","cfcs.beans.property_image").init();
propertyImageBean.setid(1);
propertyImageBean.setname("test");
propertyImageBean.setalt("asdasd");
</cfscript>
<cfdump var=#propertyImageBean#>
<cfoutput>id: #propertyImageBean.getid()#</cfoutput>
<cfoutput>alt: #propertyImageBean.getalt()#</cfoutput>
<cfoutput>name: #propertyImageBean.getname()#</cfoutput>
Выходы (сервер prod (:
Дамп компонента, но не отображает свойства компонента в дампе, тогда как на локальном сервере это
id: 1 alt: asdasd name: test
Таким образом, похоже, что это проблема с компонентом, если только на сервере нет проблем с конфигурацией.
CFC:
<!--- PROPERTIES FOR DOCUMENTATION PURPOSES ONLY --->
<cfproperty name="id" displayname="id" hint="id of the property_image" type="any" required="True" />
<cfproperty name="name" displayname="name" hint="name of the property_image" type="any" required="True" />
<cfproperty name="alt" displayname="alt" hint="alt of the property_image" type="any" required="True" />
<!--- PSEUDO-CONSTRUCTOR: SETS DEFAULT VALUES IF INIT METHOD IS NOT CALLED --->
<cfscript>
variables.id = "";
variables.name = "";
variables.alt = "";
</cfscript>
<!--- CONSTRUCTOR: TAKES IN ARGUMENTS AND CALLS SETTER (MUTATOR) FOR EACH ATTRIBUTE OF THE BEAN --->
<cffunction name="init" displayname="Init" hint="Constructor for the CFC" access="public" output="false" returntype="any">
<!--- ARGUMENTS FOR THE CONSTRUCTOR, ALL OF WHICH ARE OPTIONAL (NO-ARG CONSTRUCTOR) --->
<cfargument name="aid" displayname="id" hint="id of the property_image" type="any" required="false" default="" />
<cfargument name="aname" displayname="name" hint="name of the property_image" type="any" required="false" default="" />
<cfargument name="aalt" displayname="alt" hint="alt of the property_image" type="any" required="false" default="" />
<!--- CALL THE SETTERS (MUTATORS) FOR EACH OF THE property_image ATTRIBUTES AND PASS IN THE ARGUMENTS --->
<cfscript>
setid(arguments.aid);
setname(arguments.aname);
setalt(arguments.aalt);
</cfscript>
<cfreturn this />
</cffunction>
<!--- GETTERS AND SETTERS (MUTATORS AND ACCESSORS) --->
<cffunction name="getid" access="public" output="false" returntype="string">
<cfreturn variables.id />
</cffunction>
<cffunction name="setid" access="public" output="false" returntype="void">
<cfargument name="aid" type="string" required="true" />
<cfset variables.id = arguments.aid />
</cffunction>
<cffunction name="getname" access="public" output="false" returntype="string">
<cfreturn variables.name />
</cffunction>
<cffunction name="setname" access="public" output="false" returntype="void">
<cfargument name="aname" type="string" required="true" />
<cfset variables.name = arguments.aname />
</cffunction>
<cffunction name="getalt" access="public" output="false" returntype="string">
<cfreturn variables.alt />
</cffunction>
<cffunction name="setalt" access="public" output="false" returntype="void">
<cfargument name="aalt" type="string" required="true" />
<cfset variables.alt = arguments.aalt />
</cffunction>