Ошибка ColdSpring, что бин не существует, когда я его не ищу - PullRequest
1 голос
/ 26 марта 2012

Я работаю над плагином для Mura CMS, добавляющим мои собственные bean-компоненты, и только что начал получать сообщение об ошибке, которого не существует.У одного из моих bean-компонентов есть сеттеры и getter-ы для электронной почты, имени, количества и т. Д., А также некоторые bean-компоненты (например, configBean, priceBean, teamBean).

Когда я пытаюсь загрузить bean-компонент (называемый donationBean)Я получаю сообщение об ошибке, что бина с идентификатором электронной почты не существуетЭлектронная почта не должна быть основана на бобе.Я не добавил никакого кода, кроме getter / setter для электронной почты, и ошибка не возникает из-за каких-либо других свойств.Вот секция 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>

И, наконец, мой код для загрузки бина (изнутри бина)сам):

  public any function createForTeamPayment(priceid, teamid, name, email){
    var price = getPriceBean().loadBy({priceid=Arguments.priceid});
    setAmount(price.getAmount());
    setTeamId(Arguments.teamid);
    setName(Arguments.name);
    setEmail(Arguments.email);
    save();
  }

Ответы [ 2 ]

0 голосов
/ 30 августа 2012

Скорее всего, столкновение пространства имен ... EmailID находится в пространстве имен mura ... Вы можете попробовать установить локальную область видимости для переменных ...

Оформить заказ ~ требования \ mura \ bean \ beanFactory.cfc...

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

И тоже ~ требования \ mura \ email \ emailBean.cfc

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

    <cfproperty name="emailID" type="string" default="" required="true" />
0 голосов
/ 26 марта 2012

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

...