求解此异常:信息: Loading Spring root WebApplicationContext
DBCP borrowObject failed: com.microsoft.sqlserver.jdbc.SQLServerException: TDS 预登录响应不完整。目标服务器必须是 SQL Server 2000 或更高版本。
2011-11-24 11:56:27 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.appfuse.webapp.listener.StartupListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/hibernate_context.xml]: Initialization of bean failed; nested exception is org.apache.commons.dbcp.DbcpException: com.microsoft.sqlserver.jdbc.SQLServerException: TDS 预登录响应不完整。目标服务器必须是 SQL Server 2000 或更高版本。
org.apache.commons.dbcp.DbcpException: com.microsoft.sqlserver.jdbc.SQLServerException: TDS 预登录响应不完整。目标服务器必须是 SQL Server 2000 或更高版本。
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:85)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:184)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1158)
at org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:117)
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:110)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:312)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:80)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:72)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1881)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1174)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:800)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:726)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1059)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:363)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:226)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:269)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:320)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:134)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.appfuse.webapp.listener.StartupListener.contextInitialized(StartupListener.java:36)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3830)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4337)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
DBCP borrowObject failed: com.microsoft.sqlserver.jdbc.SQLServerException: TDS 预登录响应不完整。目标服务器必须是 SQL Server 2000 或更高版本。
2011-11-24 11:56:27 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.appfuse.webapp.listener.StartupListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/hibernate_context.xml]: Initialization of bean failed; nested exception is org.apache.commons.dbcp.DbcpException: com.microsoft.sqlserver.jdbc.SQLServerException: TDS 预登录响应不完整。目标服务器必须是 SQL Server 2000 或更高版本。
org.apache.commons.dbcp.DbcpException: com.microsoft.sqlserver.jdbc.SQLServerException: TDS 预登录响应不完整。目标服务器必须是 SQL Server 2000 或更高版本。
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:85)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:184)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1158)
at org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:117)
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:110)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:312)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:80)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:72)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1881)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1174)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:800)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:726)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1059)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:363)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:226)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:269)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:320)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:134)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.appfuse.webapp.listener.StartupListener.contextInitialized(StartupListener.java:36)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3830)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4337)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
destroy-method="close"> <property name="driverClassName">
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</property> <property name="url">
<value>jdbc:sqlserver://192.168.2.4:1433;DatabaseName=dpc_feedback360;</value>
</property> <property name="username">
<value>dpc_feedback360</value>
</property> <property name="password">
<value>ibmserver</value>
</property>
</bean>
管理连接池的<proxool>
<!-- 连接池的别名 -->
<alias>feedback</alias>
<!--proxool 只能管理由自己产生的连接 -->
<driver-url>jdbc:sqlserver://192.168.2.4:1433;DatabaseName=dpc_feedback360;
</driver-url>
<!--JDBC 驱动程序 -->
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<driver-properties>
<property name="user" value="dpc_feedback360" />
<property name="password" value="ibmserver"/>
</driver-properties>
<!-- proxool 自动侦察各个连接状态的时间间隔 ( 毫秒 ), 侦察到空闲的连接就马上回收 , 超时的销毁 -->
<house-keeping-sleep-time>90000</house-keeping-sleep-time> <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数 , 超过这个请求数的用户连接就不会被接受 -->
<maximum-new-connections>20</maximum-new-connections> <!-- 最少保持的空闲连接数 -->
<prototype-count>5</prototype-count>
<!--
允许最大连接数 , 超过了这个连接,再有请求时,就排在队列中等候,最大的 等待请求数由 maximum-new-connections
决定
-->
<maximum-connection-count>100</maximum-connection-count>
<!-- 最小连接数 -->
<minimum-connection-count>10</minimum-connection-count>
<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
<statistics>15m,1h,1d</statistics>
</proxool>
比如sa,123等,还有你的是sql2000的,你导入的驱动包正确不?
我知道的是sqlserver2008的不能用sqlserver2005的包,你的是2000的,最好用2000,不要相信什么向后兼容等,直接到CSDN上面下载sql2000的架包,也就1分资源而已!如果是先搭spring在搭hibernate的话,配置文件应该是这样的
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
</property>
<property name="url"
value="jdbc:sqlserver://127.0.0.1:1433;databaseName=test">
</property>
<property name="username" value="sa"></property>
<property name="password" value="123"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
</bean></beans>
<driver-url>jdbc:sqlserver://192.168.2.4:1433;DatabaseName=dpc_feedback360;去掉最后的分号
这次服务器上的sql版本是2005.
不知为啥就出这样的问题了。。
Class.forName();
这些方式去连接,你也连接不上,我发现可能就是这个问题,我猜你是在做测试吧?而且192.168这个ip不是你的地址把?
如果是跟我说的差不多,你是在用别人的电脑当目标服务器,那你的连接是绝对出问题的,你要打开你的一个配置,可以远程连接!因为sqlserver默认的是只能本地连接,所以你要找到程序---》sqlserver的外围应用配置---》
服务连接和应用配置器---》远程连接----》本地连接和远程连接,
只有这样你的192.168这些ip才能访问,
记住是你要访问的那台电脑要做这些设置,你的电脑不需要!你访问哪台,就把那台电脑的远程连接勾上!
然后在试试用你学java的时候最基本的连接方式试试能不能连接!
你以前用的是2000的,可能是默认打开了或者别人跟你配置了!把那个勾给勾上了!
192.168.2.4是公司的一台服务器,版本是2005的,而端口号、tcp/ip远程链接等都设置好了。
就是说服务器那没问题。
在我机器上命令行 输入 telnet 192.168.2.4 1433 是可以连接上的。。
以前的2000和现在的这个不是 一台机器上的。
两台服务器。 不同的版本 只要改下ip就OK。。
我现在怀疑 是不是我的sp4补丁没打上 或者、、
有点乱
这样看来还是我本机这的问题。
到底是jar包的问题 还是sp4补丁没打上的缘故。。
还是其他的。。
哎。
怎么判断sp4补丁到底打没打呢。。
你要知道,jar包的名字是可以改的,我就见过一个人,他用sql2000的jar包能连接2008的sql,我但是就奇怪了,哪知道是jar包的名字改了,里面的class文件都一样!
还有记得,不要在一个项目里面放入两个sql的jar包,他会默认找包的,不然连接就错误了
我发生过这种情况,我在一个项目里,放入了2005跟2008的,但是我的是08的数据库,最后没报错,没有数据,就是默认2005的,但是如果你的是2000的跟2005的jar包,我就不知道什么情况了
还有1433端口确定是sql2005的端口?不会还有2000的sql吧?
telnet 能通、
1433 确定是2005 的端口。很是纳闷。。
简单写了一个sql的测试程序 也是抛这个异常
public class Cs {
public static void main(String[] args) {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("数据库驱动程序注册成功");
Connection conn = DriverManager.getConnection("jdbc:sqlserver://192.168.2.4:1433;DatabaseName=dpc_feedback360;User=dpc_feedback360;Password=ibmserver");
System.out.println("成功连接数据库");
}
catch (Exception e) {
System.out.println("数据库连接失败");
e.printStackTrace();
}
}
}异常信息:
数据库驱动程序注册成功
数据库连接失败
com.microsoft.sqlserver.jdbc.SQLServerException: TDS 预登录响应不完整。目标服务器必须是 SQL Server 2000 或更高版本。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.DBComms.Prelogin(Unknown Source)
at com.microsoft.sqlserver.jdbc.DBComms.<init>(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.appfuse.util.Cs.main(Cs.java:9)
看看这个对你有没有帮助。。
服务器上的sql2005同时支持着两种模式。
所以 和登录模式没关系的。
我也在一步步的查找、、
我本机就装了一个客户端的、
服务器上的sql2005是很完全的、