Coldfusion 一个Bean不存在的ColdSpring错误';当我';我不是在找

Coldfusion 一个Bean不存在的ColdSpring错误';当我';我不是在找,coldfusion,coldfusion-9,coldspring,Coldfusion,Coldfusion 9,Coldspring,我正在为Mura CMS开发一个插件,添加到我自己的bean中,但刚开始出现一个不存在的错误。我的一个bean具有电子邮件、名称、金额等的setter和getter,以及一些bean(即configBean、priceBean、teamBean) 当我尝试加载bean(称为donationBean)时,我得到一个错误,即ID为email的bean不存在。电子邮件不应该基于bean。除了电子邮件的getter/setter之外,我没有添加任何代码,并且错误不会由任何其他属性引起。下面是捐赠bean

我正在为Mura CMS开发一个插件,添加到我自己的bean中,但刚开始出现一个不存在的错误。我的一个bean具有电子邮件、名称、金额等的setter和getter,以及一些bean(即configBean、priceBean、teamBean)

当我尝试加载bean(称为donationBean)时,我得到一个错误,即ID为email的bean不存在。电子邮件不应该基于bean。除了电子邮件的getter/setter之外,我没有添加任何代码,并且错误不会由任何其他属性引起。下面是捐赠bean的getter/setter部分:

  public numeric function getAmount(){ return Variables.data['amount']; }
  public void function setAmount(numeric amount){ Variables.data['amount'] = Arguments.amount; }

  public any function getConfigBean(){ return Variables.configBean; }
  public void function setConfigBean(any configBean){ Variables.configBean = Arguments.configBean; }

  public string function getEmail(){ return Variables.data['email']; }
  public void function setEmail(string email){ Variables.data['email'] = Arguments.email; }

  public string function getId(){ return Variables.data['id']; }
  public void function setId(string id){ Variables.data['id'] = Arguments.id; }

  public string function getName(){ return Variables.data['name']; }
  public void function setName(string name){ Variables.data['name'] = Arguments.name; }

  public boolean function getPaid(){ return Variables.data['paid']; }
  public void function setPaid(boolean paid){ Variables.data['paid'] = Arguments.paid; }

  public any function getPriceBean(){ return Variables.priceBean; }
  public void function setPriceBean(any priceBean){ Variables.priceBean = Arguments.priceBean; }

  public numeric function getTeamId(){ return Variables.data['teamid']; }
  public void function setTeamId(numeric teamid){ Variables.data['teamid'] = Arguments.teamid; }
这是我的config.xml

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
  <bean id="registrationBean" class="[plugin]lib.registration" />
  <bean id="priceBean" class="[plugin]lib.price" />
  <bean id="donationBean" class="[plugin]lib.donation" />
</beans>

我发现,如果我将email属性更改为另一个名称,在我的例子中是donorEmail,那么一切都开始工作了。我不知道为什么,因为没有ID为email的bean,它也没有被称为bean。

很可能是名称空间冲突。。。EmailID位于mura命名空间中。。。 您可以尝试设置变量的本地作用域

Checkout~requirements\mura\bean\beanFactory.cfc

    <cfset variables.transientAlias["email"]="emailBean"/>

还有~requirements\mura\email\emailBean.cfc

    <cfcomponent extends="mura.bean.bean" output="false">

    <cfproperty name="emailID" type="string" default="" required="true" />


也许“byName”看到了email属性,但没有id为email的bean。也许你不应该使用“byName”。那么,我很困惑,为什么bean的其他属性都不是自动连接的。在添加电子邮件属性之前一切正常。如果在我可以将此标记为答案之前没有其他答案,则我会将此标记为一个。我不喜欢将此作为答案,因为我不喜欢“它刚刚开始工作”这样的答案。我很好奇,如果对函数调用进行范围划分,是否会产生任何影响,例如。setEmail(arguments.email);。可能还有另外一个setEmail功能吗?可能。因为我在拉穆拉的冷泉豆,可能有什么东西在那里的某个地方,但据我所知,没有。当我没有时间紧张的时候,我会测试一下使用“this”是否能解决任何问题。
    <cfcomponent extends="mura.bean.bean" output="false">

    <cfproperty name="emailID" type="string" default="" required="true" />