2012-03-26 2 views
1

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

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

Может быть 'Byname' видел свойство электронной почты, но не боб с электронной почтой ид. Возможно, вы не должны использовать 'byName'. – Henry

+0

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

ответ

0

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

+0

Если нет других ответов к тому моменту, когда я могу отметить это как ответ, тогда я отмечу это как один. Мне не нравится это как ответ, потому что мне не нравится «он только начал работать» ответы. –

+0

Мне любопытно, что если вы заметите, что вызовы функций будут иметь значение, например this.setEmail (arguments.email) ;. Может ли быть другая функция setEmail, плавающая вокруг? –

+0

Возможно. Поскольку я нахожусь в холодных кустах Муры, может быть что-то там, но, насколько я знаю, нет. Когда я не нахожусь вовремя, я буду проверять, использует ли это «это» что-либо. –

0

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

заказа ~ требования \ мура \ боба \ beanFactory.cfc ...

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

И тоже ~ требования \ мура \ электронная почта \ emailBean.cfc

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

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