我的javaBean里已经 import java.io.*; import java.sql.*; import com.microsoft.jdbc.sqlserver.SQLServerDriver; 而且我也试了在jsp里 <%@ page import = "java.sql.* , java.io.*,com.microsoft.jdbc.sqlserver.SQLServerDriver" %> 不过报 import com.microsoft.jdbc.sqlserver.SQLServerDriver; ^ 1 errororg.apache.jasper.JasperException: Unable to compile class for JSP C:\sysmanager\Tomcat\work\roleright$jsp.java:5: Class com.microsoft.jdbc.sqlserver.SQLServerDriver not found in import. import com.microsoft.jdbc.sqlserver.SQLServerDriver; ^ 1 error 我想应该是程序调用问题,路径能设的都设了,不会有问题了 ===尘芎苇===
注意你在classpath里面添加的是那三个驱动文件.jar自身的真实路径,不是它们的目录路径!!! 比如你添加的是 C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib,其实应该是: C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\*.jar; C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\*2.jar; C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\#3.jar; 其中**.jar指的是那3个驱动 如果在classpath里面设置好了(使用jbuilder编译器则在lib里面添加这三个文件进去),程序里面只需import java.sql.*;相关class即可,驱动的不用
试了无数遍之后才发现漏了一个地方没有设classpath,我在jbuilder7-tools-configues jdks里引入了那三个包,问题解决,驱动找到 不过这个错误还请各位看看:马上结账! java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]将截断字符串或二进制数据。 at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source) at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source) at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.executeUpdate(Unknown Source) at sysmanager.Roleright.setRight(Roleright.java:259) at org.apache.jsp.roleright$jsp._jspService(roleright$jsp.java:128) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012) at org.apache.catalina.connector.http.HttpProcessor.run(
我在环境变里也添加了,不过classpath是
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib
没有指向下面的三个包。原因不知道是不是这里
Tue Sep 24 11:34:22 CST 2002: 无法注册JDBC驱动程序: com.microsoft.jdbc.sqlserver.SQLServerDriver, 错误: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
Tue Sep 24 11:34:22 CST 2002: 成功创建连接池j2
Tue Sep 24 11:34:22 CST 2002: 成功创建连接池j1
Tue Sep 24 11:34:31 CST 2002: 无法创建下列URL的连接: jdbc:microsoft:sqlserver://xxg:1433;DatabaseName=jxkh_db;UID=sa;PWD=
怀疑是不是程序调用问题,因为用一个类去调用连接池类没问题,驱动也注册的到,
但一改成jsp+javaBean bean调用连接池类就不行了
import java.io.*;
import java.sql.*;
import com.microsoft.jdbc.sqlserver.SQLServerDriver;
而且我也试了在jsp里
<%@ page import = "java.sql.* , java.io.*,com.microsoft.jdbc.sqlserver.SQLServerDriver" %>
不过报
import com.microsoft.jdbc.sqlserver.SQLServerDriver;
^
1 errororg.apache.jasper.JasperException: Unable to compile class for JSP
C:\sysmanager\Tomcat\work\roleright$jsp.java:5: Class com.microsoft.jdbc.sqlserver.SQLServerDriver not found in import.
import com.microsoft.jdbc.sqlserver.SQLServerDriver;
^
1 error
我想应该是程序调用问题,路径能设的都设了,不会有问题了
===尘芎苇===
比如你添加的是 C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib,其实应该是:
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\*.jar; C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\*2.jar; C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\#3.jar;
其中**.jar指的是那3个驱动
如果在classpath里面设置好了(使用jbuilder编译器则在lib里面添加这三个文件进去),程序里面只需import java.sql.*;相关class即可,驱动的不用
真的是有点郁闷,其实你说的我都试了,不过从上面程序报错来看,连接池已经执行,只是调不到驱动。但是我用一个测试类去调用连接池却没有问题。为什么用jsp+javabean+连接池就调不到类了,而且在那javabean里,我用个public static void main(String[] args)测试,也没问题,但是要说路径的话,该配的都配了,应该不会在哪有问题
===尘芎苇===
不过这个错误还请各位看看:马上结账!
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]将截断字符串或二进制数据。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeUpdate(Unknown Source)
at sysmanager.Roleright.setRight(Roleright.java:259)
at org.apache.jsp.roleright$jsp._jspService(roleright$jsp.java:128)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
at org.apache.catalina.connector.http.HttpProcessor.run(
我刚才测试一条查询语句没问题,但如果插入就出现上面的错,难道是sqlserver2000权限问题?
请指教!
===尘芎苇===
把jdbc的三个jar文件copy到tomcat的lib目录就解决了!