我用的软件是:
j2sdk1.5,tomcat4.1.30 ,MS SQL Server2000个人版
tomcat服务器可以正常运行。但是涉及到连接数据库时就出现异常。
出现:
数据库出现内部异常
ODBC未发现数据源及驱动程序
请问这是什么原因呢?
j2sdk1.5,tomcat4.1.30 ,MS SQL Server2000个人版
tomcat服务器可以正常运行。但是涉及到连接数据库时就出现异常。
出现:
数据库出现内部异常
ODBC未发现数据源及驱动程序
请问这是什么原因呢?
我也安了,并且也把它放在tomcat\common\lib 下
classpath中也加了它的路径
但还不行呀?
第一,加载数据库的时候有异常:你可以看看自己的加载程序是否有错
第二,你可能如楼上所说的是驱动没有装。
第三,SQL写的不太正确。
你的ODBC根本没配置
第一步:----安装J2SDK: 到SUN官方站点(http://java.sun.com)下载J2SDK的安装文件:j2sdk-1_4_2_02-windows-i586-p.exe,下载之后安装好J2SDK;安装完之后,设置环境变量:我的电脑---属性---高级---环境变量; 选择---系统变量(S):
设置JAVA_HOME环境变量: 单击---新建,在变量名中输入:JAVA_HOME 在变量值中输入:D:\yy\pro\j2sdk1.4.2 然后---确定,到此已经设置好JAVA_HOME环境变量。 设置CLASSPATH环境变量: 单击---新建,在变量名中输入:CLASSPATH 在变量值中输入:D:\yy\pro\j2sdk1.4.2\bin;.;D:\yy\pro\j2sdk1.4.2\lib;D:\yy\pro\j2sdk1.4.2\lib\dt.jar;D:\yy\pro\j2sdk1.4.2\lib\tools.jar (中间的点号“.”和分号“;”必不可少。) 然后---确定,到此已经设置好CLASSPATH环境变量。 设置PATH环境变量: 单击---新建,在变量名中输入:PATH 在变量值中输入:D:\yy\pro\j2sdk1.4.2;.;D:\yy\pro\j2sdk1.4.2\bin (中间的点号“.”和分号“;”必不可少。) 然后---确定,到此已经设置好JAVA_HOME环境变量。 三个环境变量设置好后,写一个简单的java程序来测试J2SDK是否已安装成功: 在D:\下新建一个目录test;然后写如下程序:
public class Test {
public static void main(String args[]) {
System.out.println("This is a test program.");
}
} 将上面的这段程序保存为文件名为Test.java的文件,保存在目录D:\test下。 然后打开命令提示符窗口,cd到你的test目录,然后键入下面的命令 javac Test.java
java Test 此时如果看到打印出来This is a test program.的话说明安装成功了, 如果没有打印出这句话,你需要仔细检查一下你的配置情况。 如果上面的J2SDK安装成功的话,接下来继续安装Tomcat: 第二步:----安装Tomcat: 到tomcat官方站点(http://www.apache.org/dist/jakarta/tomcat-4/)下载tomcat: jakarta-tomcat-4.1.30.exe,下载之后安装。(比如安装在D:\yy\pro\Tomcat下。) 安装完之后,设置环境变量:我的电脑---属性---高级---环境变量; 选择---系统变量(S): 设置CATALINA_HOME环境变量: 单击---新建,在变量名中输入:CATALINA_HOME 在变量值中输入:D:\yy\pro\Tomcat 然后---确定,到此已经设置好CATALINA_HOME环境变量。 设置CATALINA_BASE环境变量: 单击---新建,在变量名中输入:CATALINA_BASE 在变量值中输入:D:\yy\pro\Tomcat 然后---确定,到此已经设置好CATALINA_BASE环境变量。 然后修改环境变量中的CLASSPATH,把Tomat安装目录下的common\lib下的servlet.jar追加到CLASSPATH中去, 接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。
我安完,tomcat正常运行了。
我用的驱动程序是jtds-0.6.jar把它放置在tomcat\common\lib下 classpath中也加了它的路径
但是还是异常。
可以帮我吗?好心人?
也添加了数据源
数据库没问题的。
我用的是jdk 1.46 tomcat 5.0没有问题
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /mytest_db.jsp(0,3) Invalid directive
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:94)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:428)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:126)
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:383)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:795)
at org.apache.jasper.compiler.Parser.parse(Parser.java:122)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:199)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:153)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:227)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:369)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
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:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:833)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:711)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:687)
at java.lang.Thread.run(Thread.java:534)--------------------------------------------------------------------------------Apache Tomcat/4.1.30-LE-jdk14这是浏览器中出现的。
哪位大侠帮我一下呢?
package test;
import java.sql.*;
public class mytest_db
{
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:pubs";
Connection conn=null;
ResultSet rs=null; public mytest_db() {
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("Class mytest_db not found!"+e.getMessage());
}
}
public ResultSet executeQuery(String sql) {
rs=null;
try
{
conn=DriverManager.getConnection(sConnStr,"sa","");
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch (SQLException ex)
{
System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;
}
public ResultSet executeUpdate(String sql) {
rs=null;
try
{
conn=DriverManager.getConnection(sConnStr,"sa","");
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch (SQLException ex)
{
System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;
}
}
测试的Jsp文件是:
<%@ page import="java.sql.*" contentType="text/html;charset=gb2312" %>
<jsp:useBean id="test" scope="page" class="mytest_db"/>
<html>
<body>
<%
String sql="select job_id,job_desc from jobs";
ResultSet rs=test.executeQuery(sql);
while(rs.next()) { %>
您的第一个字段内容为:<%=rs.getString(1)%><br>
您的第二个字段内容为:<%=rs.getString(2)%><br>
<% } %>
<% out.print("数据库操作成功,恭喜你"); %>
<% rs.close();
%>
</body>
</html>
请赐教!!!
<jsp:useBean id="test" scope="page" class="test.mytest_db"/>