当前位置: 首页 > 知识库问答 >
问题:

Spring: Bean属性不可写或具有无效的setter方法

酆英达
2023-03-14

我知道这个问题已经被问了很多次,但在我看来一切都是正确的。我还从Eclipse中删除了我的代码,让IDE创建getter/setter,但没有用。

这是我在网络逻辑中的错误:

原因:豆类属性“gpsDataAllStopsSql”无效:bean 类的属性“gpsDataAllStopsSql”无效:bean 属性“gpsDataAllSTopsSql”无效,或者具有无效的 setter 方法。二极管的参数类型是否与 getter 的返回类型匹配?

这是我的豆子

<bean id="dataDao" class="com.text.service.dao.DataDaoImpl" >
      <property name="dataSource" ref="dataSource" />
      <property name="gpsDataAllStopsSql">
          <value><![CDATA[SELECT A.XML_DATA,B.ADDR1,B.ADDR2,B.POSTALCODE  FROM GPS.EVENT_STAMP A LEFT OUTER JOIN DB.SCAN B ON  A.FAC_IORG_NBR=B.FACILITY AND A.SCANNER_DATE=B.SCANDATE AND A.SCANNER_ID=B.SCANNERID AND A.PD_START_TIME=B.PDSTART WHERE FAC_IORG_NBR = ?  AND SCANNER_DATE = CAST(? AS DATE) AND SCANNER_ID = ? AND PD_START_TIME = ?]]></value>
    </property> 
      <property name="gpsDataSql">
          <value><![CDATA[SELECT A.XML_DATA,A.STOP_NUMBER,B.ADDR1,B.ADDR2,B.POSTALCODE FROM GPS.EVENT_STAMP A LEFT OUTER JOIN DB.SCAN B ON  A.STOP_NUMBER=B.STOP# AND A.FAC_IORG_NBR=B.FACILITY AND A.SCANNER_DATE=B.SCANDATE AND A.SCANNER_ID=B.SCANNERID AND A.PD_START_TIME=B.PDSTART WHERE FAC_IORG_NBR = ?  AND SCANNER_DATE = CAST(? AS DATE) AND SCANNER_ID = ? AND PD_START_TIME = ? AND STOP_NUMBER = ?]]></value>
 </property> 
 </bean>

以下是我的DaoImpl中的getter和setter方法:

private static String gpsDataSql = null;

private static String gpsDataAllStopsSql = null;

public static String getGpsDataSql() {
    return gpsDataSql;
}

public static void setGpsDataSql(String gpsDataSql) {
    DataDaoImpl.gpsDataSql = gpsDataSql;
}

public static String getGpsDataAllStopsSql() {
    return gpsDataAllStopsSql;
}

public static void setGpsDataAllStopsSql(String gpsDataAllStopsSql) {
    DataDaoImpl.gpsDataAllStopsSql = gpsDataAllStopsSql;
}

是我的眼睛滑过了什么,还是我的环境有问题?

谢谢!

共有1个答案

舒斯伯
2023-03-14

您在XML中声明的bean尝试设置存在于DataDaoImpl类上的属性。要使其正常工作,请删除静态成员并为您的类尝试以下操作:

package com.text.service.dao;

public class DataDaoImpl extends SomeOtherDaoWhereDataSourceIsDefined {
    private String gpsDataAllStopsSql;
    private String gpsDataSql;

    public String getGpsDataAllStopsSql() {
        return gpsDataAllStopsSql;
    }

    public void setGpsDataAllStopsSql(String gpsDataAllStopsSql) {
        this.gpsDataAllStopsSql = gpsDataAllStopsSql;
    }

    public String getGpsDataSql() {
        return gpsDataSql;
    }

    public void setGpsDataSql(String gpsDataSql) {
        this.gpsDataSql = gpsDataSql;
    }
}

本文解释了静态成员与非静态成员的用法。

 类似资料:
  • 这是我的实用程序java文件: Spring-servlet.xml: 当我运行时,我得到以下错误: org.springframework.beans。NotWritablePropertyException:bean类[com.chrysler.Utilities.HibernateUtil]的属性“sessionFactory”无效:bean属性“sesionFactory'不可写或具有无效

  • 我正在我的应用程序服务层中实现Spring事务。 我指的是教程点上的例子,以编程方式实现spring事务... https://www.tutorialspoint.com/spring/programmatic_management.htm 我跟踪了每一个 错误: 线程“main”org.springframework.beans.factory.BeanCreationException中的异

  • 我在用spring做实验,我在看《spring:一个开发者的笔记本》这本书。我得到了这个错误: 原因:org.springframework.beans.factory.BeanCreationException:创建类路径资源[batch-config.xml]中定义的名为“validate file”的bean时出错:设置属性值时出错;嵌套异常为org.springframework.bean

  • 我得到以下错误 原因:org.springframework.beans.NotWritablePropertyException:bean类的无效属性'packagesToScan'[org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean]:Bean属性'packagesToScan'不可写或具有无效的setter方法

  • 错误: 有表格:团队、组织。有一对多的关系。 团队模式 组织 JSP 如何让spring让所有组织都使用JSP? 更新: 我使用controller将所有组织和新团队对象的列表传递给jsp: 更新2: 是否限制使用多个模型属性,在这种情况下有两个:和?如何让它工作? 自定义属性名称:commandName描述:表单对象在其下公开的模型属性的名称。默认为“command”。必需:false可以具有运

  • 我是Spring的新手,我有个例外。 我有一个jsp,有很多选择。它们都工作正常,但有一个显示了这个例外: 我正在以与其他工作正常的人相同的方式实施selct。下面是jsp代码: 这里是控制器: 这里,实体Expediente: 最后是TipoExpedinte实体 我认为这可能发生,因为PharmantePadre属性是同一实体Pharmante的外键,但我不知道如何解决它。。。 要帮忙吗?谢谢