SQL Server 2005 与 java 的连接。

Posted

技术标签:

【中文标题】SQL Server 2005 与 java 的连接。【英文标题】:SQL Server 2005 connection with java. 【发布时间】:2011-02-04 21:07:42 【问题描述】:

需要帮助:将 SQL Server2005 与 java 连接。我已将 dll 文件放在 system32 中。我正在使用 sqljdbc_2.0 驱动程序

02:29:11,937 ERROR [STDERR] com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication.
02:29:11,937 ERROR [STDERR]     at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170)
02:29:11,937 ERROR [STDERR]     at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2338)
02:29:11,937 ERROR [STDERR]     at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1929)
02:29:11,937 ERROR [STDERR]     at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
02:29:11,937 ERROR [STDERR]     at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:1917)
02:29:11,937 ERROR [STDERR]     at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4026)
02:29:11,937 ERROR [STDERR]     at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1416)
02:29:11,937 ERROR [STDERR]     at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1061)
02:29:11,937 ERROR [STDERR]     at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833)
02:29:11,937 ERROR [STDERR]     at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716)
02:29:11,937 ERROR [STDERR]     at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841)
02:29:11,937 ERROR [STDERR]     at java.sql.DriverManager.getConnection(Unknown Source)
02:29:11,937 ERROR [STDERR]     at java.sql.DriverManager.getConnection(Unknown Source)
02:29:11,937 ERROR [STDERR]     at com.product.DAO.userDAOImpl.GetRemotePID(userDAOImpl.java:10029)
02:29:11,937 ERROR [STDERR]     at com.product.DAO.userDAOImpl.getServiceList(userDAOImpl.java:8191)
02:29:11,937 ERROR [STDERR]     at com.product.action.BillGenerationAction.execute(BillGenerationAction.java:272)
02:29:11,937 ERROR [STDERR]     at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
02:29:11,937 ERROR [STDERR]     at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
02:29:11,937 ERROR [STDERR]     at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
02:29:11,937 ERROR [STDERR]     at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
02:29:11,937 ERROR [STDERR]     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
02:29:11,937 ERROR [STDERR]     at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
02:29:11,937 ERROR [STDERR]     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
02:29:11,937 ERROR [STDERR]     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
02:29:11,937 ERROR [STDERR]     at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
02:29:11,937 ERROR [STDERR]     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
02:29:11,937 ERROR [STDERR]     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
02:29:11,937 ERROR [STDERR]     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
02:29:11,937 ERROR [STDERR]     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
02:29:11,937 ERROR [STDERR]     at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
02:29:11,937 ERROR [STDERR]     at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
02:29:11,937 ERROR [STDERR]     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
02:29:11,937 ERROR [STDERR]     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
02:29:11,937 ERROR [STDERR]     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
02:29:11,937 ERROR [STDERR]     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
02:29:11,937 ERROR [STDERR]     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
02:29:11,937 ERROR [STDERR]     at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
02:29:11,937 ERROR [STDERR]     at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
02:29:11,937 ERROR [STDERR]     at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
02:29:11,937 ERROR [STDERR]     at java.lang.Thread.run(Unknown Source)

【问题讨论】:

为 SQLServer 实例配置了哪些身份验证方案? 它不包含任何用户名和密码..但仍然收到错误 blogs.msdn.com/b/jdbcteam/archive/2007/06/18/… @srikanth,首先,错误不是因为您发送用户名和密码,或者其他原因。其次,问题中缺少一些细节。如果我们知道正在使用的 JDBC 驱动程序的版本以及您正在使用的 JDBC 连接字符串,那就更好了。此外,尝试将 Tomcat 的调试级别设置为 TRACE(或同等级别),看看您是否可以获得有关该问题的更多信息。 出于好奇,您不使用 jtds 有什么原因吗? jtds.sourceforge.net 【参考方案1】:

您正在使用集成身份验证。您是否按照MSDN 中的说明使用集成安全性?

如果您指定用户名和密码,而不是连接字符串中的integratedSecurity=true,您会连接吗?

【讨论】:

@vineeth:我正在使用 JBoss 4.0 和 Eclipse IDE Helios。我正在使用 sqljdbc_2.0 驱动程序和与之关联的 dll。 如果我指定用户名和密码而不是集成安全性,它仍然不会连接 no... 错误将是.. 无法通过 username='sa' 登录 .. 但我已经进行了 windows 身份验证,我没有使用任何用户名和密码 要使用用户名和密码(例如sa)与 SQL Server 用户名连接,您必须在配置中启用它。默认情况下,此选项被禁用。 Server Properties --> Security --> enable SQL Server and Windows Authentication Mode【参考方案2】:

这是基于从整个帖子和 MSDN 收集的数据。由于潜在问题,通常会遇到此处显示的错误。在大多数情况下,问题与 JVM 用来定位要加载的任何本机库的 java.library.path 环境变量有关。这个环境变量可能已经被 JBoss 设置好了,需要在其中附加 DLL 的位置;如果没有,则需要在启动JBoss时设置环境变量。

现在,情况可能并非如此,因此,如果情况并非如此,建议让 JBoss 编写 INFO 和 TRACE 级别的事件。潜在问题通常会被报告为 TRACE 级别的日志条目。

【讨论】:

以上是关于SQL Server 2005 与 java 的连接。的主要内容,如果未能解决你的问题,请参考以下文章

我使用flex 通过RemoteObject与java交互,java访问SQL Server2005,但是总是返回NaN。

JTDS 与 SQL Server 的连接问题 - 适用于 2000 但不适用于 2005

JAVA中用啥方法向SQL server2005中插入一条数据并返回他的主键值

SQL Server 2005 小型企业与 SQL Server Express 2012 [关闭]

使用 Java 连接 SQL Server 2005 Express

java连接sql server 2005的问题 java.sql.SQLException: No suitable driver