场景:
TDS 预登录响应不完整。
目标服务器必须是 SQL Server 2000 或更高版本。解决办法
TDS 预登录响应不完整。目标服务器必须是 SQL Server 2000 或更高版本。
求解此异常:
Java code 香港六合彩现场直播 www.hppyv.com
信息: 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)
------解决方案--------------------
代码少了,看不出哪里的错,如果你是用sping跟hibernate搭建的话,看看配置文件的连接数据库的配置对了没有
比如sa,123等,还有你的是sql2000的,你导入的驱动包正确不?
我知道的是sqlserver2008的不能用sqlserver2005的包,你的是2000的,最好用2000,不要相信什么向后兼容等,直接到CSDN上面下载sql2000的架包,也就1分资源而已!
如果是先搭spring在搭hibernate的话,配置文件应该是这样的
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="//www.springframework.org/schema/beans"
xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"
xmlns:p="//www.springframework.org/schema/p"
xsi:schemaLocation="//www.springframework.org/schema/beans //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>
------解决方案--------------------你的目标服务器的地址那里出了问题,你是在局域网内做测试是吧!如果你现在连接的电脑不是你的本机,你是在一个局域网内连接,那是要打开一个sqlserver的配置的,不然是连接不上的!
------解决方案--------------------要闲聊,QQ137075251
------解决方案--------------------
Java code
<driver-url>jdbc:sqlserver://192.168.2.4:1433;DatabaseName=dpc_feedback360;去掉最后的分号
------解决方案--------------------
你可以简单的用你学java时最基本的写法去连接,
Class.forName();
这些方式去连接,你也连接不上,我发现可能就是这个问题,我猜你是在做测试吧?而且192.168这个ip不是你的地址把?
如果是跟我说的差不多,你是在用别人的电脑当目标服务器,那你的连接是绝对出问题的,你要打开你的一个配置,可以远程连接!因为sqlserver默认的是只能本地连接,所以你要找到程序---》sqlserver的外围应用配置---》
服务连接和应用配置器---》远程连接----》本地连接和远程连接,
只有这样你的192.168这些ip才能访问,
记住是你要访问的那台电脑要做这些设置,你的电脑不需要!你访问哪台,就把那台电脑的远程连接勾上!
然后在试试用你学java的时候最基本的连接方式试试能不能连接!
------解决方案--------------------
sqlserver2005不需要打那个补丁吧。。2000的才需要打SP4,2005的需要换一个jar包。使用sqljdbc.jar