这是我做的一个bug管理源代码 http://www.tomore.com/1/37104.html我在学校做的这个东西,用的 jbuilder 2005+tomcat4.0+sql2000 在win2000环境下作的,在学校的机子下直接放到comcat下就可以用,可以运行,但在家里的机子直接放进去不能运行,(家里的机子自己配置的,第一次配置,能打开tomcat欢迎页面)。问题是:在tomcat里能访问到第1个jsp页面,跳转到第2个页面时候就连数据库就出问题了。
我猜在学校里tomcat是配好的,在家里有可能配置的不对或配置不相同,就出问题。大哥们,快点帮我下载下来看看阿,解决了马上送分阿。------------------------------------------------------------------------------------------
这是错误提示:type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.NullPointerException
tmp.longinAction.execute(longinAction.java:33)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.0.28
解决方案 »
- 各位大侠。。web工程 能打成jar包吗??
- 求教熟悉quartz的朋友。
- 发一个从数据库生成JAVABEAN 和 Hibernate 配置文件的小工具
- mysql的中文乱码问题 和 jsp连接mysql插入中文出错问题
- div如何盖住 select?
- JSP如何创建文件
- 如何读取保存在SQL数据库中图片,我搜索了很多贴子,都没解决!
- 关于RequestDispatcher的一个很奇怪的问题?
- 急手的问题?急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!
- 学jsp的前途怎么样,相对asp与php
- 哪有jsp版的文章编辑器,所见即所得、支持 html、可以上传图片实现图文混排?
- JSP老手帮我看看这页代码,为什么表单和里面的内容显示不出来?
我觉得是tomcat配置的问题
-----------------------------------------------------------------------------------
package tmp;import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import tmp.*;
import javax.servlet.http.HttpSession;
import gerenxinxi.*;
import xiangmu.*;
import yonghu.*;public class longinAction extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse)throws Exception {
//得到登陆用户信息
longinActionForm f = (longinActionForm) actionForm;
String name = f.getName();
String password = f.getPassword(); //转化编码支持中文
name = new String(name.getBytes("ISO-8859-1"), "gbk"); //得到用户信息存储对象
HttpSession session = servletRequest.getSession();
gerenxinxi yonghu1 = (gerenxinxi) session.getAttribute("yonghu1"); //判断用户登陆是否正确
boolean b = yonghu1.denglupanduan(name, password); if(b==true)
{
//对登陆用户的个人信息进行存储
yonghu1.chushihua(); //判断此用户是否有项目
if((yonghu1.getSuochuxiangmu())==null) //无项目的
{
String xitongquanxian=yonghu1.getXitongquanxian(); //判断系统权限
if(xitongquanxian.equals("普通用户"))
{
return actionMapping.findForward("gerenxinxi"); //跳转到个人信息页
}
else if(xitongquanxian.equals("项目管理员")|| xitongquanxian.equals("系统管理员"))
{
//存储项目状态信息
xiangmuzhuangtailiebiao xmzt=new xiangmuzhuangtailiebiao();
servletRequest.setAttribute("xmzt",xmzt); //存储所有项目的简单信息
xiangmuliebiao xl=new xiangmuliebiao();
xl.addxiangmu(); //分页
fenye xiangmufenye = new fenye();
xl=xiangmufenye.xiangmufenye(xl,"0","12");
servletRequest.setAttribute("xiangmufenye",xiangmufenye); servletRequest.setAttribute("xiangmuliebiao",xl); return actionMapping.findForward("xiangmuliebiao"); //跳转到项目列表页
}
else
{
//存储所有用户的简单信息
yonghuliebiao yl=new yonghuliebiao();
yl.addyonghu();
//分页
fenye yonghufenye=new fenye();
yl=yonghufenye.yonghufenye(yl,"0","12");
servletRequest.setAttribute("yonghufenye",yonghufenye); servletRequest.setAttribute("yonghuliebiao",yl);
return actionMapping.findForward("yonghuliebiao"); //跳转到用户列表页
}
}
else //有项目
{
String xiangmuid=yonghu1.getSuochuxiangmu().getXiangmuId(); //用户所处项目
String yonghuid=yonghu1.getBenrenxinxi().getYonghuId(); //用户id
String quanxianzhi=yonghu1.getSuochujuese(); //在项目中所处的角色值 //在项目中所处的角色的相应事务bug列表
bugliebiao jsbl=new bugliebiao();
jsbl.jueseaddbug(xiangmuid,yonghuid,quanxianzhi,"");
servletRequest.setAttribute("jsbl",jsbl); //提交页中所需参数:bug状态参数
bugzhuangtailiebiao bzl=new bugzhuangtailiebiao();
servletRequest.setAttribute("bzl",bzl); //判断在项目中的角色值: 1设定为测试人员,2 开发人员,4项目组长
if(quanxianzhi.equals("1"))//测试人员
{
//提交页中所需参数:开发人员列表
kaifarenyuanliebiao kl=new kaifarenyuanliebiao(xiangmuid);
servletRequest.setAttribute("kl",kl); return actionMapping.findForward("ceshirenyuandewodeshiwu"); //跳转到测试人员的我的事物
}
else if(quanxianzhi.equals("2")) //开发人员
{
//提交页中所需参数:测试人员列表
ceshirenyuanliebiao cl=new ceshirenyuanliebiao(xiangmuid);
servletRequest.setAttribute("cl",cl);
//分页 return actionMapping.findForward("kaifarenyuandewodeshiwu"); //跳转到开发人员的我的事物
}
else //项目经理 权限值4
{
//提交页中所需参数:开发人员列表
kaifarenyuanliebiao kl=new kaifarenyuanliebiao(xiangmuid);
servletRequest.setAttribute("kl",kl);
//提交页中所需参数:测试人员列表
ceshirenyuanliebiao cl=new ceshirenyuanliebiao(xiangmuid);
servletRequest.setAttribute("cl",cl); return actionMapping.findForward("xiangmuzuzhangdewudeshiwu"); //跳转到项目组长的我的事物
}
}
}
else
{
//提交一个提示信息
servletRequest.setAttribute("xinxi","您输入用户名或密码错误!");
return actionMapping.findForward("longin");
} }
}
boolean b = yonghu1.denglupanduan(name, password); yonghu1 这个不一定有啊,如果是第一次
你什么时候
存到session里面去的
这里直接用的一个类连接的数据库。 如果连接数据库出问题了,这里也会报异常吧 。
连接数据库类:
------------------------------------------------------------------------------------
package db;import java.sql.*;//数据库操作类:只实现数据库的连接和关闭
public class Db{
public Connection conn=null;
public Db()
{ }
//数据库连接方法
public void getCon(String dbName){
try {
if (conn==null||(conn.isClosed())) {
//Oracle驱动注册
//Class.forName("oracle.jdbc.driver.OracleDriver");
//conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:"+dbName,"scott","tiger");
//SqlServer驱动注册
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=sa;databaseName=" +
dbName);
}
}
catch (Exception e) {
System.out.println("连接不成功!\n" + e.getMessage());
}
}
//数据库的关闭方法
public void closeConnection(){
try {
if (conn != null && (!conn.isClosed()))
conn.close();
}
catch (Exception e) {
System.out.println("关闭操作不成功!\n" + e.getMessage());
}
}
/* static public void main(String args[])
{
Db d=new Db();
d.getCon("pubs");
System.out.println("adf");
d.closeConnection();
}*/
}
看到底哪一行报了这个nullpointerException
只是,编译好后,我把网站文件夹拿出来放到新装的tomcat中时就不能访问了(第一个页可以访问,第2个页连数据库了就出问题了)。
这个项目是用的 struts框架。
拿位大哥有时间的话,下载一下,配置一下看看怎么配。可以的话,我在别的帖子里在给大哥加分也可以阿。
小弟现在头痛啊。
靠我手数出来的33行是那个session里get出来的对象是个null值
我觉得配置一点都不难!自己好好学,其实很简单!你检查一下你的那个
gerenxinxi yonghu1 = (gerenxinxi) session.getAttribute("yonghu1");
boolean b = yonghu1.denglupanduan(name, password);
看看,yonghu1这个对象是不是null!
感谢yeno,我要好好学习一下你的帖子。
-------------------------------------------------------
//数据库连接方法
public void getCon(String dbName){
try {
if (conn==null||(conn.isClosed())) {
//Oracle驱动注册
//Class.forName("oracle.jdbc.driver.OracleDriver");
//conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:"+dbName,"scott","tiger");
//SqlServer驱动注册
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=sa;databaseName=" +
dbName);
}
}
boolean b = yonghu1.denglupanduan(name, password);
那么可能是yonghu1报空指针,也可能是执行denglupanduan报空指针.如果denglupanduan里面有数据库操作,那么可能是数据库配置问题.但是如果project是直接放到tomcat的webapps下面,应该不需要配置什么.
在去连接的bean里面,写一个main()方法确定你的数据库连接是否能正确取到,是否能正确查询
请问,应该怎么配置一下?
conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=sa;databaseName=" + dbName);改成如下的形式
String url = "jdbc:microsoft:sqlserver://localhost:1433;databaseName="+dbName;
String uid = "sa";
String pwd = "sa";
conn = DriverManager.getConnection(url,uid,pwd);
问题先放一下吧。
这里十分感谢 yeno(人在广州) 等回帖的兄弟。