jsp+javabean+weblogic+oracle8的一个简单问题(20分)

  • 主题发起人 zhang12321
  • 开始时间
Z

zhang12321

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个javabean
里有个function a
我在jpr中建一个main()在这里调用
B b=new B();
b.a()
可以通过(insert db里能看到结果)
但我在jsp中这样作时:
B b=new B();
b.a()
db中什么都不发生@@@@!
谁知道错 在哪了???
谢谢!!!
 
也就是说我在一个class中调 用a()这个方法可以
但在jsp中就不行了
为什么呢?
等待!!!
 
对不起,请更清楚地描述问题。
这个问题你完全可以自己继续debug.
可以在B.a()中加上log,比如System.out.println('enter ');
然后看你的application server的log,是否有这一句输出?
如此继续,你可以逐步精确的定位出错误是在什么地方。
除此之外, jsp output和application server的log中还有有价值的exception信息吗?
事上无难事,只怕有心人。
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1359573
和本题重复,请删除。
 
我的jsp为:
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="rate.*" %>
<%
//if (request.getParameter("ratepolicyid")!=null&amp;&amp;request.getParameter("ratepolicyname")!=null) {
try{
RatePolicyBean ratePolicyBean=new RatePolicyBean();
ratePolicyBean.addRatePolicy(java.lang.Integer.parseInt("8"),"fgdfgzhw");
}catch(Exception e){
e.toString();
}
// System.out.println(request.getParameter("ratepolicyid"));
//System.out.println(request.getParameter("ratepolicyname"));
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location",request.getContextPath()+"/rate/RatePolicy.jsp");
//System.out.println("OKKKKK");
//}
%>
我调试用的class为:

package rate;
/**
* <p>Title: rate</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/
public class test {
public test() {
}
public static void main(String[] args) {
test test1 = new test();
// /*
try{
RatePolicyBean ratePolicyBean= new RatePolicyBean();
ratePolicyBean.addRatePolicy(java.lang.Integer.parseInt("8"),"fgdfgzhw");
}catch(Exception e){
e.printStackTrace();
System.out.println("error");
}
System.out.println("OK");
//*/
//System.out.println("OK");
}
}
两个都运行
则class的数据库已插入
而jsp的无任何的提示,数据库中也没有结果!!!
我用的方法为:
public void addRatePolicy(int rateId,String rateName){
try{
Connection conn = ConnectionPool.getWeblogicConnection();
PreparedStatement pstmt=conn.prepareStatement("select RATE_ID from RATE_POLICY where RATE_ID="+rateId);
ResultSet rs=pstmt.executeQuery();
System.out.println("select RATE_ID from RATE_POLICY where RATE_ID=rateId");
String Strsql;
if (rs.next()){
Strsql="update RATE_POLICY set RATE_POLICY.RATE_NAME=? where RATE_ID=?";
pstmt=conn.prepareStatement(Strsql);
pstmt.setString(1,rateName);
pstmt.setInt(2,rateId);
pstmt.execute();
System.out.println("update RATE_POLICY set RATE_POLICY.RATE_NAME=? where RATE_ID=?");
}else
{
Strsql="insert into RATE_POLICY values (?,?)";
pstmt=conn.prepareStatement(Strsql);
pstmt.setInt(1,rateId);
pstmt.setString(2,rateName);
pstmt.execute();
System.out.println("insert into RATE_POLICY values (?,?)");
}
请大家帮我看看为什么(本人水平真的有限)!!!
 
你按照我说的方法试了没有?
 
to::曹晓钢
谢谢!!
我的方法里已加入了调试信息如:
public void addRatePolicy(int rateId,String rateName){
try{
Connection conn = ConnectionPool.getWeblogicConnection();
PreparedStatement pstmt=conn.prepareStatement("select RATE_ID from RATE_POLICY where RATE_ID="+rateId);
ResultSet rs=pstmt.executeQuery();
此处 System.out.println("select RATE_ID from RATE_POLICY where RATE_ID=rateId");
String Strsql;
if (rs.next()){
Strsql="update RATE_POLICY set RATE_POLICY.RATE_NAME=? where RATE_ID=?";
pstmt=conn.prepareStatement(Strsql);
pstmt.setString(1,rateName);
pstmt.setInt(2,rateId);
pstmt.execute();
此处 System.out.println("update RATE_POLICY set RATE_POLICY.RATE_NAME=? where RATE_ID=?");
}else
{
Strsql="insert into RATE_POLICY values (?,?)";
pstmt=conn.prepareStatement(Strsql);
pstmt.setInt(1,rateId);
pstmt.setString(2,rateName);
pstmt.execute();
此处 System.out.println("insert into RATE_POLICY values (?,?)");
当我用jbuilder里调用运行此方法时,此方法正常(且有那些信息的输出)
但jsp中不行,jsp也不报错,weblogic也不报错,我查看了一下weblogic.log也没有相关的信
息,另外在weblogic运行时的那个cmd.bat窗口中(我不知叫什么)也没有任何变化!
我想请教一下
如果那个方法运行了,那么我在方法在写的system.out....这些语句他会在什么地方输入呢?
另外weblogic还有哪些log文件(除weblogic.log)可以得到帮助信息??
再次谢谢你的关心!!
等!!

 
我运行后weblogic.log里只产生了一句:
####<2002-10-4 下午04时58分06秒> <Info> <JDBC> <zhanghw> <myserver> <ExecuteThread: '13' for queue: 'default'> <system> <> <001068> <Connection for pool "GranPool" created.>
我想是不是问 题出在.jsp上呢?
比如除了这个方法调用以外这个jsp文件设定???
比如seesion等
 
我已经调了一天了!!!!
 
曹晓钢的方法差不多是现在调试jsp相关的程序最常用也是最简单的方法了,
你为什么不在你的每一行代码前都加上System.out.println();?这样你可以
很容易的看出是什么地方出错的。
这个没人能帮你。debug是一个程序员起码的能力。
 
谢谢你们
!!!!!
 
顶部