【问题标题】:Show SQL errors of Spring-security in tomcat在tomcat中显示Spring-security的SQL错误
【发布时间】:2011-04-13 19:26:06
【问题描述】:

我有一个使用 spring-security 框架的 Web 应用程序。我建立了一个数据库来存储用户及其角色,但是tomcat给出了以下错误。

17-sep-2010 11:56:14 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
17-sep-2010 11:56:14 org.springframework.jdbc.support.SQLErrorCodesFactory <init>
INFO: SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]

有什么方法可以让我看到发生的错误?我在 tomcat 和 mysql 日志中找不到任何内容。

我使用的是 tomcat 7.0.2 和 mysql 5.1

更新: 添加了 log4j.properties

log4j.rootLogger=warn, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.logger.org.springframework.security=DEBUG
# log4j.logger.org.springframework.target=System.out

和 web.xml

<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

还没有成功

【问题讨论】:

    标签: java sql tomcat spring-security


    【解决方案1】:

    此消息与您的应用程序运行时发生的错误无关:

    INFO: SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
    

    而这只是Spring framework's JDBC support 记录的事实,即它已经加载了对翻译这些 SQL 数据库本机错误代码的支持,这些 SQL 数据库将转换为 Spring 的 DataAccessException 层次结构。此处的日志消息中没有发生错误。

    如果您希望能够记录有关 Spring 正在做什么等的更多信息,框架 uses commons-logging 并且有多种方式可以配置实际输出。

    【讨论】:

      【解决方案2】:

      我在 Spring Security 中使用了类似的东西 从 USER 中选择 * ...

      更改 select * from user .. 就可以了

      【讨论】:

        【解决方案3】:

        我收到上述错误的原因是我错过了第一个 sql 查询中的 1 as enabled 属性和 u.username 属性spring security config的第二个sql查询。

         <authentication-manager>
                <authentication-provider>
                    <password-encoder hash="md5"/>
                    <jdbc-user-service 
                        data-source-ref="dataSource"
                        users-by-username-query="select username, password, 1 as enabled from users where username = ?"
                        authorities-by-username-query="select u.username, ur.user_role from USERS u, USERS_ROLE ur where u.sl_no = ur.user_id and u.username = ?"/>
                  </authentication-provider>
                </authentication-manager>
        
                <b:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
                    <b:property name="driverClassName" value="org.hsqldb.jdbcDriver" />
                    <b:property name="url" value="jdbc:hsqldb:hsql://localhost/" />
                    <b:property name="username" value="SA" />
                    <b:property name="password" value="" />
                </b:bean>
        

        希望这可以帮助解决此错误的人!!

        【讨论】:

          猜你喜欢
          • 2014-01-01
          • 2021-06-06
          • 2011-11-25
          • 2013-07-19
          • 2017-09-22
          • 2016-01-17
          • 2013-01-07
          • 2015-08-15
          • 2018-10-02
          相关资源
          最近更新 更多