十分簡單的問題﹐只要你做過"JSP的數據庫訪問"就能回答﹐我是在送分啊...

doodoofish 2003-01-23 03:39:45
一個名為"test.jsp"的文件﹐源代碼如下:

<%!
public void jspInit()
{
try
{
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
}
catch(ClassNotFoundException cnfe)
{
System.out.println(cnfe.toString());
}
}
%>
<html>
<head>
<title>test</title>
</head>
<body>
<h1>Welcome to my homepage</h1>
</body>
</html>

此文件放在"%CATALINA_HOME%\webapps\Test"目錄下。

啟動Tomcat4.1﹐在瀏覽器地址欄裡打入"http://localhost:8080/Test/test.jsp"﹐終端顯示"java.lang.ClassNotFoundException: COM.ibm.db2.jdbc.app.DB2Driver"﹐也就是說找不到IBM DB2的JDBC Driver (我的數據庫是DB2的)。

我已經把IBM DB2的JDBC Driver文件---"db2java.zip"放到"%CATALINA_HOME%\webapps\Test\WEB-INF\lib"目錄下了﹐並且在Classpath中定義了"db2java.zip"的完整路徑。系統環境變量裡也已經有"CATALINA_HOME"和"JAVA_HOME"了。

那麼﹐問題出在哪裡?

不知道SUN會不會考這道題......
...全文
29 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
doodoofish 2003-01-23
  • 打赏
  • 举报
回复
沒有<%@page import="COM.ibm.db2.jdbc.app.DB2Driver" %>也行
hanty 2003-01-23
  • 打赏
  • 举报
回复
正常的应该放在WEB-INF/lib下面,因为这样项目最走安装管理比较顺利
//
<%@page import="COM.ibm.db2.jdbc.app.DB2Driver" %>
<%!
public void jspInit()
{
try
{
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
}
catch(ClassNotFoundException cnfe)
{
System.out.println(cnfe.toString());
}
}
%>
<html>
<head>
<title>test</title>
</head>
<body>
<h1>Welcome to my homepage</h1>
</body>
</html>
doodoofish 2003-01-23
  • 打赏
  • 举报
回复
heyday(水中天) :
"把db2java.zip改为db2java.jar放到C:\Tomcat 5.0\common\lib中试试

我是oracle,db2没试过,应该差不多"


不用放到C:\Tomcat 5.0\common\lib﹐放在"%CATALINA_HOME%\webapps\Test\WEB-INF\lib"目錄下就可以了﹐而且JBuilder就是這麼做的。關鍵就是把"db2java.zip"改为"db2java.jar"
doodoofish 2003-01-23
  • 打赏
  • 举报
回复
heyday(水中天) :
"把db2java.zip改为db2java.jar放到C:\Tomcat 5.0\common\lib中试试

我是oracle,db2没试过,应该差不多"


成功!!!!!!!!!!!!!!!!!!!!!!!!!!!!非常感謝!!!!!!!!!!!

源程序如下(一字未改):

<%!
public void jspInit()
{
try
{
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
}
catch(ClassNotFoundException cnfe)
{
System.out.println(cnfe.toString());
}
}
%>
<html>
<head>
<title>
test
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
</body>
</html>

注: jspInit()是JSP剛被JSP Container初始化當前JSP時自動呼叫的method﹐只會被call一次﹐相當于Servlet裡的init()。你可以把JSP的初始代碼放在這。

heyday(水中天)﹐難道說Class.forName(...)只認jar文件嗎? zip文件就不認識啦? 兩者的格式一樣啊。



glassprogrammer 2003-01-23
  • 打赏
  • 举报
回复
呵呵, 建议把 db2java.zip 改名为 db2java.jar 试试
doodoofish 2003-01-23
  • 打赏
  • 举报
回复
bdsc() 我把你的程序改寫如下(其實一樣):
<%@page import="COM.ibm.db2.jdbc.app.DB2Driver" %>
<html>
<head>
<title>
test
</title>
</head>
<body bgcolor="#ffffff">
<%
try
{
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
}
catch(ClassNotFoundException cnfe)
{
out.println(cnfe.toString());
}
%>
<h1>
JBuilder Generated JSP
</h1>
</body>
</html>


結果顯示:

org.apache.jasper.JasperException: Unable to compile class for JSP

cannot resolve symbol symbol : class DB2Driver
location: package app
import COM.ibm.db2.jdbc.app.DB2Driver;
^
1 error
heyday 2003-01-23
  • 打赏
  • 举报
回复
把db2java.zip改为db2java.jar放到C:\Tomcat 5.0\common\lib中试试

我是oracle,db2没试过,应该差不多
bdsc 2003-01-23
  • 打赏
  • 举报
回复
以下是我的说法:
<%@page import="COM.ibm.db2.jdbc.app.DB2Driver" %>
<%//把那个!删掉
public void jspInit()
{
try
{
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
}
catch(ClassNotFoundException cnfe)
{
System.out.println(cnfe.toString());
}
}
%>
<html>
<head>
<title>
test
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
<%
this.jspInit();//在某个地方把你定义的方法调用一下
%>
</h1>
</body>
</html>
doodoofish 2003-01-23
  • 打赏
  • 举报
回复
"搞笑"

別光笑啊﹐說說你的看法
doodoofish 2003-01-23
  • 打赏
  • 举报
回复
"把IBM DB2的JDBC Driver文件---"db2java.zip"放到"%CATALINA_HOME%\common\lib中试一试。"


試過﹐錯誤信息相同
doodoofish 2003-01-23
  • 打赏
  • 举报
回复
"把那个!删掉,在某个地方把你定义的方法调用一下

(或jspInit()是什么规范/缺省,相当于servlet的init()??)"

我按照你的說法改成這樣:
<html>
<head>
<title>
test
</title>
</head>
<body bgcolor="#ffffff">
<%
try
{
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
}
catch(ClassNotFoundException cnfe)
{
out.println(cnfe.toString());
}
%>
<h1>
JBuilder Generated JSP
</h1>
</body>
</html>


結果顯示:
java.lang.ClassNotFoundException: COM.ibm.db2.jdbc.app.DB2Driver
JBuilder Generated JSP

還是出錯﹐同樣的錯誤
kehua_gao 2003-01-23
  • 打赏
  • 举报
回复
把IBM DB2的JDBC Driver文件---"db2java.zip"放到"%CATALINA_HOME%\common\lib中试一试。
fanky78 2003-01-23
  • 打赏
  • 举报
回复
搞笑
doodoofish 2003-01-23
  • 打赏
  • 举报
回复
"要放到tomcat\common\lib下"

試過﹐錯誤信息相同。
bdsc 2003-01-23
  • 打赏
  • 举报
回复
把那个!删掉,在某个地方把你定义的方法调用一下

(或jspInit()是什么规范/缺省,相当于servlet的init()??)
doodoofish 2003-01-23
  • 打赏
  • 举报
回复
試過不行
doodoofish 2003-01-23
  • 打赏
  • 举报
回复
是不是這樣寫:

<%@page import="COM.ibm.db2.jdbc.app.DB2Driver" %>
<%!
public void jspInit()
{
try
{
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
}
catch(ClassNotFoundException cnfe)
{
System.out.println(cnfe.toString());
}
}
%>
<html>
<head>
<title>
test
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
</body>
</html>
doodoofish 2003-01-23
  • 打赏
  • 举报
回复
好﹐我試試看
bdsc 2003-01-23
  • 打赏
  • 举报
回复
<%@page import="xxx.xxx.xxx.xxx" %>
zxhong 2003-01-23
  • 打赏
  • 举报
回复
要放到tomcat\common\lib下
加载更多回复(1)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧