场景:
TDS 预登录呼应不完整。
方针服务器有必要是 SQL Server 2000 或更高版别。解决办法
TDS 预登录呼应不完整。方针服务器有必要是 SQL Server 2000 或更高版别。
求解此反常:
Java code
信息: 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="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>
------解决方案--------------------你的方针服务器的地址那里出了问题,你是在局域网内做测验是吧!假如你现在衔接的电脑不是你的本机,你是在一个局域网内衔接,那是要翻开一个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