我正在开发一个基于Java的REST Web应用程序,该应用程序使用Jersey,Tomcat 8.0作为servlet和SQLServer 2008作为数据库。应用程序的某些区域需要身份验证(用户必须使用用户名/密码填写登录表单才能继续),因此我使用Tomcat JDBC Realm来解决这一问题。安全限制和用户角色似乎工作正常,并且登录表单正在正确显示。
问题出在我的SQLServer用户表中的用户身份验证中。当我调用HttpServletRequest.login(username, password)
时,我的SQLServer JDBC驱动程序正确执行了到数据库的连接,但是抛出SQLServerException报错查询语法错误。有谁知道这可能是问题所在,或者至少我怎么能看到驱动程序试图发送给SQLServer的查询? (使用适用于Java的SQLServer驱动程序对数据库的访问在应用程序的所有其他区域上都可以正常工作。)
最佳答案
好的,我解决了这个问题。问题是我在SQLServer上的用户表被命名为user
,事实证明是user
是SQLServer中的保留世界。我只希望JDBC驱动程序以适当的异常消息告诉我,而不是抱怨查询语法。将其重命名为users
可解决该问题。
关于sql-server - SQLServer的Tomcat JDBC领域登录问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32387653/