1

嗨,我在下面收到此错误,不知道如何解决。

细节:

要么没有具有指定方法名称和参数类型的方法,要么leaseService 方法被ColdFusion 无法可靠破译的参数类型重载。ColdFusion 找到 0 个与提供的参数匹配的方法。如果这是一个 Java 对象并且您验证了该方法存在,请使用 javacast 函数来减少歧义。

信息:

找不到leaseService 方法。

在此处输入图像描述

我在 IIS 7 上运行的 Windows 7 上使用 fw1 3.1.1 和 Adob​​e CF 9。

我的框架一结构(简化)

控制器
-property.cfc
-lease.cfc

模型/Bean
-property.cfc
-lease.cfc

服务
-property.cfc
-lease.cfc

视图/属性
-detail.cfm

在我的财产控制器中,我像这样调用租赁列表功能。

property propertyService;
property leaseService;

function detail(rc) {
        rc.property = variables.propertyService.detail(id=rc.id);  
        rc.leases = variables.leaseService().list(propertyID=rc.id);
}

这是我的租赁服务:

component accessors=true {

function init( beanFactory ) {
        variables.beanFactory = beanFactory;
    return this;
}

function list(propertyID) {
        var qData = new query();
        qData.setDatasource(application.dsn); 
        qData.setName("qLease");
        qData.addParam(name="propertyID", value="#rc.propertyID#", CFSQLTYPE="cf_sql_numeric");

        qData.setSQL("
            select l.id, l.fName, l.lName, l.leaseActive, l.leaseFrom, l.leaseTo, CONCAT(u.fname,' ',u.lname) pmName
        from leases l inner join users u on l.pmID = u.id
        where propertyID = :propertyID
        order by LeaseTo DESC
        ");

        qReturn = qData.execute();
        result = qReturn.getResult();

        return result;
}

}

任何建议将不胜感激。

谢谢你!

4

1 回答 1

2

您正在调用leaseService作为方法。这是一个变量。所以代替这个:

rc.property = variables.propertyService.detail(id=rc.id);  
rc.leases = variables.leaseService().list(propertyID=rc.id);

做这个:

rc.property = variables.propertyService.detail(id=rc.id);  
rc.leases = variables.leaseService.list(propertyID=rc.id);

请注意,我删除了()

高温高压

于 2015-09-24T16:52:44.600 回答