myeclipse中为struts配置dbcp数据池连接sqlserver时出现的问题
2012-03-17 16:13
369 查看
下午照着书上写了个连接sqlserver的dbcp数据池,出现不少错误。。
一开始用myeclipse中struts-config中的新建datasource的向导,生成之后如下图:
java.lang.NullPointerException
at com.bupt.struts.action.LoginAction.valid(LoginAction.java:90)
at com.bupt.struts.action.LoginAction.execute(LoginAction.java:65)
然后百度了一下NullPointerException,说是引用空指针可能导致的,65行跟90行代码分别为:
65:boolean isvalid=valid(request,username,password);
try{
ds=getDataSource(request);
90: cn=ds.getConnection();
Statement st=cn.createStatement();
90行是在65行所调用的函数内,因此大体定位于90行附近,90行调用空对象那只可能是DS了,也就意味着上一行的getdatasource函数有问题,没有返回正确的对象。
于是百度ds=getDataSource(request);,还真发现了问题,因为myeclipse自动生成的配置里面有datasource有KEY这个属性,有这个的话在调用这个函数的时候就需要加上,于是把key这个属性值给删除掉。。重新运行,提交用户名跟密码之后发现datasource问题已经解决。出现新的问题
com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'user' 附近有语法错误。
由以上的错误,以后要记得在myeclipse自动生成的东西上要注意,有可能是不合适的。。!!!!!
下面解决关键字的问题,一开始以为是自己的struts-config上的<set-property property="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=user" />
这句中的user有问题呢,但是对着语法查了会也没发现问题,于是百度,发现原来数据库中有一个表命名的是user,而在INSERT跟SELECT语句中有user这个词,但在sqlserver中user是关键字,因此必须在sql语句中把user改成[user],try it!OK,GAME OVER!
一开始用myeclipse中struts-config中的新建datasource的向导,生成之后如下图:
<data-sources> <data-source key="mydatasource" type="org.apache.commons.dbcp.BasicDataSource"> <set-property property="autoCommit" value="false" /> <set-property property="readOnly" value="false" /> <set-property property="description" value="mydatasource" /> <set-property value="loginTimeout" property="20"/> <set-property property="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" /> <set-property property="minCount" value="5" /> <set-property property="user" value="testrootsql" /> <set-property property="password" value="testrootsql" /> <set-property property="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=user" /> <set-property property="maxCount" value="10" /> </data-source> </data-sources>
然后部署还有访问的时候直接来个不知道为什么会servlet找不到,一开始以为是index.do在struts-config中没有正确的设置跳转,但检查之后确认没有问题。忽然想起来前几天看一篇文章写myeclipse中如果不是用自带的连接池的话那自动生成的配置中间有两个properties名称需要改,driverClass应该改为driverClassName,而user应该改为username。改完之后重新部署,这下可以进入到登陆页面,但是输入用户名密码点登陆之后控制台提示HTTP Status 404 - Servlet action is not available
java.lang.NullPointerException
at com.bupt.struts.action.LoginAction.valid(LoginAction.java:90)
at com.bupt.struts.action.LoginAction.execute(LoginAction.java:65)
然后百度了一下NullPointerException,说是引用空指针可能导致的,65行跟90行代码分别为:
65:boolean isvalid=valid(request,username,password);
try{
ds=getDataSource(request);
90: cn=ds.getConnection();
Statement st=cn.createStatement();
90行是在65行所调用的函数内,因此大体定位于90行附近,90行调用空对象那只可能是DS了,也就意味着上一行的getdatasource函数有问题,没有返回正确的对象。
于是百度ds=getDataSource(request);,还真发现了问题,因为myeclipse自动生成的配置里面有datasource有KEY这个属性,有这个的话在调用这个函数的时候就需要加上,于是把key这个属性值给删除掉。。重新运行,提交用户名跟密码之后发现datasource问题已经解决。出现新的问题
com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'user' 附近有语法错误。
由以上的错误,以后要记得在myeclipse自动生成的东西上要注意,有可能是不合适的。。!!!!!
下面解决关键字的问题,一开始以为是自己的struts-config上的<set-property property="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=user" />
这句中的user有问题呢,但是对着语法查了会也没发现问题,于是百度,发现原来数据库中有一个表命名的是user,而在INSERT跟SELECT语句中有user这个词,但在sqlserver中user是关键字,因此必须在sql语句中把user改成[user],try it!OK,GAME OVER!
相关文章推荐
- ArcGIS Server配置用户与角色时连接SQLServer问题
- MyEclipse中的配置,及可能出现的问题
- Eclipse/MyEclipse连接Hadoop集群出现:Unable to ... ... org.apache.hadoop.security.AccessControlExceptiom:Permission denied问题
- DBCP连接mysql出现“8小时”问题解决
- Myeclipse 配置SQLServer 驱动遇到的问题
- DBCP配置数据库连接乱码问题
- 使用struts时配置经常出现的问题
- 关于MYECLIPSE开发Spring+Struts+Hibernate时用SQL2000出现驱动不匹配的问题
- 关于Struts2.3.28配置出现的问题:Dispatcher initialization failed
- 解决问题:Myeclipse配置spring时出现applicationContext.xml红叉
- 【sqlserver】【03】三范式、 sqlserver连接配置 、sqlserver查询出现消息208无效字段
- Myeclipse 配置连接Sqlserver2008试图出现 Error while performing database login...
- 第一次ADO.Net连接SQLserver测试时出现的问题-传智播客的ADO例子
- 遇到的问题-----win7配置wifi时设置网络后无线连接不出现
- struts配置数据源类型问题 type="org.apache.commons.dbcp.BasicDataSource"
- 关于myeclipse10中配置tomcat7出现的问题
- MyEclipse连接MySQL数据库出现问题以及解决措施
- Myeclipse+struts+sqlserver的中文乱码问题
- 关于MyEclipse(jsp+Tomcat)与 SQLSERVER 2012 JDBC连接的问题解决方法
- MyEclipse 和 MySQL 连接 配置文件 出现 The word 'localhost' is not correctly spelled