Tomcat不稳定,求教高手!

fralee625 2005-11-08 03:38:12
javabean源代码如下:

package conn_go;
import java.sql.*;

public class conn_asa{
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:court";
Connection conn=null;
ResultSet rs=null;
Statement stmt;

public conn_asa(){
try{
Class.forName(sDBDriver);
conn=DriverManager.getConnection(sConnStr,"DBA","sql");
stmt=conn.createStatement();
}
catch(java.lang.ClassNotFoundException e){
System.err.println("faq():"+e.getMessage());
}
catch(java.sql.SQLException e1){
System.err.println("faq():"+e1.getMessage());
}

}


public ResultSet executeQuery(String sql){
rs=null;
try{
conn=DriverManager.getConnection(sConnStr,"DBA","sql");
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);

}
catch(SQLException ex){
System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;

}
public static void closeConnection(Connection conn,Statement stmt,ResultSet rs) throws SQLException{
if(rs!=null)rs.close();
if(stmt!=null)stmt.close();
if(conn!=null)conn.close();
}

}

在jsp中调用:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="java.sql.*"%>
<jsp:useBean id="justDo" scope="page" class="conn_go.conn_asa"/>
<html>
<title>test</title>
<body>
<%
ResultSet Rs=justDo.executeQuery("select * from MSPT");
String strTemp;
//while(Rs.next()){
// strTemp=Rs.getString(1);
// out.print(strTemp);
//}
//Rs.close();

closeConnection;
%>
</body>
</html>

现在允许不稳定有时候正常,有时候刷新会提示错误:
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 7 in the jsp file: /index_index.jsp
Generated servlet error:
Syntax error, insert "AssignmentOperator ArrayInitializer" to complete Expression


org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:397)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

为什么呢?
javabean已经编译并放置好了.
时好时坏.请大家帮忙看看
谢谢!
...全文
688 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
dlzhg2005 2005-11-17
  • 打赏
  • 举报
回复
提示JSP编译An error occurred at line: 7 出错
估计你的数据库JAR包没有引入你的CLASSPATH~!
fralee625 2005-11-16
  • 打赏
  • 举报
回复
现在bean的内容已经改成:
package conn_go;
import java.sql.*;
import java.lang.*;
import java.util.*;

public class conn_asa{
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:court";
Connection conn=null;
ResultSet rs=null;
Statement stmt=null;

public conn_asa(){
try{
Class.forName(sDBDriver);
//conn=DriverManager.getConnection(sConnStr,"DBA","sql");
//stmt=conn.createStatement();
}
catch(java.lang.ClassNotFoundException e){
System.err.println("faq():"+e.getMessage());
}
//catch(java.sql.SQLException e1){
// System.err.println("faq():"+e1.getMessage());
//}

}

public void executeUpdate(String sql) throws Exception
{
sql= new String(sql.getBytes("GBK"),"ISO8859_1");
try
{
conn= DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
conn.close();
stmt.close();
}
catch(SQLException ex)
{
System.out.println("更新数据操作失败!"+ex.getMessage());
}
}



public ResultSet executeQuery(String sql) throws Exception{
rs=null;
try{
sql= new String(sql.getBytes("GBK"),"ISO8859_1");
conn=DriverManager.getConnection(sConnStr,"DBA","sql");
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException ex){
System.err.println("aq.executeQuery:"+ex.getMessage());
}
//finally{
// rs.close();
// conn.close();
//stmt.close();
// }
return rs;
}


public static void closeDb(ResultSet rs, Statement stmt, Connection conn) throws Exception{
try
{
if(rs!= null){
try{
rs.close();
}
catch(SQLException e){
}
}
if(stmt!= null){
try{
stmt.close();
}
catch(SQLException e){
}
}
if(conn!= null){
try{
conn.close();
}
catch(SQLException e){
}
}

}
catch(Exception ex){
System.err.println("关闭连接错误:"+ex.getMessage());

}

}






}

眼急手块 2005-11-15
  • 打赏
  • 举报
回复
楼主把程序都改成JAVA代码,先不要放在JSP中。另外,close的时候最好捕获一下异常
fralee625 2005-11-14
  • 打赏
  • 举报
回复
谢谢,我试了一下
出现错误:
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 7 in the jsp file: /index_tmp.jsp
Generated servlet error:
Syntax error, insert "AssignmentOperator ArrayInitializer" to complete Expression


org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:409)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


zeq258 2005-11-13
  • 打赏
  • 举报
回复
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="java.sql.*"%>
<jsp:useBean id="justDo" scope="page" class="conn_go.conn_asa"/>
<html>
<title>test</title>
<body>
<%
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:court";
Connection conn=null;
ResultSet rs=null;
Statement stmt;


try{
Class.forName(sDBDriver);
conn=DriverManager.getConnection(sConnStr,"DBA","sql");
stmt=conn.createStatement();
}
catch(java.lang.ClassNotFoundException e){
System.err.println("faq():"+e.getMessage());
}
catch(java.sql.SQLException e1){
System.err.println("faq():"+e1.getMessage());
}

ResultSet Rs=stmt.executeQuery("select * from MSPT");
String strTemp;
while(Rs.next()){
strTemp=Rs.getString(1);
out.print(strTemp);
}
Rs.close();
stmt.close();
// closeConnection; //不要这个方法,直接对连接进行关闭就可以,

con.close;
%>
</body>
</html>


--------------------------------------
你再试下?
fralee625 2005-11-12
  • 打赏
  • 举报
回复
我一在jsp操作stmt,就提示我:

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

An error occurred at line: 8 in the jsp file: /index_index.jsp
Generated servlet error:
stmt cannot be resolved
fralee625 2005-11-12
  • 打赏
  • 举报
回复
感觉 closeConnection() 有问题,但不知道错在哪里?请高手指点!谢谢!
fralee625 2005-11-12
  • 打赏
  • 举报
回复
谢谢 zeq258(近朱者赤) ,但还是有问题

<meta http-equiv="pragma" content="no-cache">我已经加上了

在 class 处加入 synchronized 时,编译java出错
提示:
此处不允许使用修饰符

至于
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="java.sql.*"%>
<jsp:useBean id="justDo" scope="page" class="conn_go.conn_asa"/>
<html>
<title>test</title>
<body>
<%
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:court";
Connection conn=null;
ResultSet rs=null;
Statement stmt;


try{
Class.forName(sDBDriver);
conn=DriverManager.getConnection(sConnStr,"DBA","sql");
stmt=conn.createStatement();
}
catch(java.lang.ClassNotFoundException e){
System.err.println("faq():"+e.getMessage());
}
catch(java.sql.SQLException e1){
System.err.println("faq():"+e1.getMessage());
}

ResultSet Rs=stmt.executeQuery("select * from MSPT");
String strTemp;
while(Rs.next()){
strTemp=Rs.getString(1);
out.print(strTemp);
}
Rs.close();

closeConnection;
%>
</body>
</html>

运行时会产生新的错误如下:
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 8 in the jsp file: /index_index.jsp
Generated servlet error:
The method closeConnection() is undefined for the type index_005findex_jsp


如果是 closeConnection() 有错误,那是什么样的错误呢,我发现把 closeConnection(); 这行屏蔽掉就没有错误了,但是去掉了,就无法关掉数据库连接了,重复刷新一定次数数据库就会瘫痪.
feihn 2005-11-11
  • 打赏
  • 举报
回复
推荐Tomcat5.0.19+JDK1.4.2
fralee625 2005-11-11
  • 打赏
  • 举报
回复
可能 closeConnection; 有问题但是不知道问题出在哪里???
zeq258 2005-11-11
  • 打赏
  • 举报
回复
<meta http-equiv="pragma" content="no-cache">
把这个也加到你的页面中,设置不要页面缓存。
zeq258 2005-11-11
  • 打赏
  • 举报
回复
还有一个问题,也许在你的程序中还没有出现问题,但是确实存在隐患。

public synchronized class conn_asa{ 在类前边加上同步关键字。当然也可以加在方法上
zeq258 2005-11-11
  • 打赏
  • 举报
回复
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="java.sql.*"%>
<jsp:useBean id="justDo" scope="page" class="conn_go.conn_asa"/>
<html>
<title>test</title>
<body>
<%
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:court";
Connection conn=null;
ResultSet rs=null;
Statement stmt;


try{
Class.forName(sDBDriver);
conn=DriverManager.getConnection(sConnStr,"DBA","sql");
stmt=conn.createStatement();
}
catch(java.lang.ClassNotFoundException e){
System.err.println("faq():"+e.getMessage());
}
catch(java.sql.SQLException e1){
System.err.println("faq():"+e1.getMessage());
}

ResultSet Rs=stmt.executeQuery("select * from MSPT");
String strTemp;
while(Rs.next()){
strTemp=Rs.getString(1);
out.print(strTemp);
}
Rs.close();

closeConnection;
%>
</body>
</html>


--------------------------------------
把相关代码都放到页面中,你试下,会不会出现你说的那种错误!
然后把结果说出来!
LeiMZ 2005-11-11
  • 打赏
  • 举报
回复
用WebLogic比较稳定
fralee625 2005-11-11
  • 打赏
  • 举报
回复
大家可以试一试,就这两个文件.没几行程序,我用ASP的时候从来没有遇到过这种情况,刷新若干次以后才出现问题的情况,如果认为程序有错误可以指出来,谢谢
fralee625 2005-11-11
  • 打赏
  • 举报
回复
觉得我程序有问题的朋友,请指出问题到底在哪里???
fralee625 2005-11-11
  • 打赏
  • 举报
回复
什么潜在问题???我的程序全在这里了.我晕
zeq258 2005-11-11
  • 打赏
  • 举报
回复
你这个肯定不是tomcat 的问题,

正如:

回复人: viano(优秀是一种习惯!) ( ) 信誉:105 2005-11-10 11:20:38 得分: 0





不是 tomcat 不稳定

是你的程序有问题!

编译好的程序不等于就是好的程序

编译好只是说明语法没有问题,我个人认为 tomcat还是很稳定的!

请仔细检查你的程序潜在的问题!



duwan 2005-11-10
  • 打赏
  • 举报
回复
你的程序有问题,我也碰到过这样的问题
viano 2005-11-10
  • 打赏
  • 举报
回复


不是 tomcat 不稳定

是你的程序有问题!

编译好的程序不等于就是好的程序

编译好只是说明语法没有问题,我个人认为 tomcat还是很稳定的!

请仔细检查你的程序潜在的问题!
加载更多回复(9)

81,092

社区成员

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

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