【问题标题】:Strange error occured in shiro doGetAuthorizationInfo methodshiro doGetAuthorizationInfo 方法中出现奇怪的错误
【发布时间】:2016-07-17 22:12:06
【问题描述】:

我这几天遇到了一个奇怪的错误,仍然很困惑,详细信息如下:

我正在使用 apache shiro 和 spring,

经过一些工作,我准备设置“doGetAuthorizationInfo”方法,因为我在控制器中使用“@RequiresRoles”,

我发现如果我多次调用 XXXService(或任何服务),就会发生异常(第一次调用 XXXService,一切正常),所以,我尝试测试“doGetAuthenticationInfo”在用于登录的同一个Realm中,我在该方法中多次调用了XXXService或其他服务,它工作正常,

我还尝试更改不同的数据源组件,

所以我认为这不是数据源组件错误,

我没找到原因。

当我使用 dbcp 数据源时,出现如下异常:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.

没有其他人导致异常。

其他地方没有发现这个问题。

感谢您的帮助。

【问题讨论】:

    标签: spring authorization shiro


    【解决方案1】:

    通过一天多的努力,我发现了一些东西, 我正在使用 dataSourceProxy:

    <bean id="dataSourceProxy"
        class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
        <property name="targetDataSource" ref="dataSource" />
    </bean>
    
    <bean id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSourceProxy" />
    ...
    </bean>
    

    当我更改为 entityManagerFactory 的 ref 原始数据源 bean 时:

    <bean id="entityManagerFactory"
            class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource" />
        ...
    </bean>
    

    错误消失。

    【讨论】:

      猜你喜欢
      • 2016-04-13
      • 1970-01-01
      • 2014-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-08
      • 1970-01-01
      相关资源
      最近更新 更多