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

不可写属性异常:Bean 属性“数据源”不可写或具有无效的 setter 方法

宋奇希
2023-03-14

我正在我的应用程序服务层中实现Spring事务。

我指的是教程点上的例子,以编程方式实现spring事务...

https://www.tutorialspoint.com/spring/programmatic_management.htm

我跟踪了每一个

错误:

线程“main”org.springframework.beans.factory.BeanCreationException中的异常:在类路径资源[数据库/spring.xml]中定义名称为“transactionManager”的bean创建时出错:设置属性值时出错;嵌套异常org.springframework.beans.NotWritablePropertyException:bean类[org.springframework.jdbc.datasource.DataSourceTransactionManager]的无效属性“dataSource”: Bean属性“dataSource”不可写或具有无效的setter方法。setter的参数类型是否与getter的返回类型匹配?

系统

如果有人能给我解答,那对我会很有帮助。。。

<?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

       <!-- ********************* Initialization for Inventory database -->

         <bean id="dataSource"
            class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="com.mysql.jdbc.Driver" />
            <property name="url" value="jdbc:mysql://localhost:3306/myDatabase" />
            <property name="username" value="root" />
            <property name="password" value="root" />
        </bean>

        <!--*********************  Initialization for TransactionManager -->
        <bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager">
          <property name="dataSource" ref="dataSource"></property>    
       </bean> 

    </beans>


public class MyService implements InventoryServiceIface{

    private MyDAO dao;

    private PlatformTransactionManager transactionManager;

    public void setTransactionManager(PlatformTransactionManager transactionManager) {

        this.transactionManager = transactionManager;
    }

    public void setDAO(MyDAO dao) {

        this.dao = dao;
    }


    public Student saveStudent(Student tudent) throws ServiceException{

              validate(Student); // validate the data inside party object 

              TransactionStatus status = beginTransaction(); // begin database transaction

              try 
              {
                  rollbackTransaction();
                  Student =  dao.saveStudent(student); 
              }
              catch(ServiceException e)
              {
                   rollbackTransaction(status);
                   throw e;
              }
              catch(Exception e)
              {
                   rollbackTransaction(status);
                   throw new ServiceException(e);
              }

               commitTransaction(status);

          return student;
    }

    public TransactionStatus beginTransaction()

    {
        System.out.println("TRANSACTION BEGINS....");
        return transactionManager.getTransaction(new DefaultTransactionDefinition());

    }

    public void rollbackTransaction(TransactionStatus status)

    {
        System.out.println("ROLL BACK....");
        transactionManager.rollback(status);

    }

    public void commitTransaction(TransactionStatus status)

    {
        System.out.println("TRANSACTION COMMITTED....");
        transactionManager.commit(status);

    }

}// End of Class

共有1个答案

蒋健
2023-03-14

设置datasource的DataSourceTransactionManager的属性名在stacktrace dataSource中被写入,而不是xxxxxDataSource。您的配置应该如下

        <bean class="org.springframework.jdbc.datasource.
        DataSourceTransactionManager" id="transactionManager">
         <property name="dataSource" ref="xxxxDataSource"> 
         </property>    
       </bean> 
 类似资料:
  • 这是我的实用程序java文件: Spring-servlet.xml: 当我运行时,我得到以下错误: org.springframework.beans。NotWritablePropertyException:bean类[com.chrysler.Utilities.HibernateUtil]的属性“sessionFactory”无效:bean属性“sesionFactory'不可写或具有无效

  • 我知道这个问题已经被问了很多次,但在我看来一切都是正确的。我还从Eclipse中删除了我的代码,让IDE创建getter/setter,但没有用。 这是我在网络逻辑中的错误: 原因:豆类属性“gpsDataAllStopsSql”无效:bean 类的属性“gpsDataAllStopsSql”无效:bean 属性“gpsDataAllSTopsSql”无效,或者具有无效的 setter 方法。二极

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

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

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

  • 因此,我有一个任务来编写一个简单的注册表路由Web应用程序。使用Spring MVC。所以我有“路线”类,在那里我想保留起点、终点和中间点列表。但是我不明白,如何把值从jsp列表(例如使用jstl)。所以我决定解析一个字符串。 并遵循JSP: 如果有必要,我可以发布控制器代码。我有一个错误: 谁能解释一下我做错了什么?