//struts2 的重载函数
@Override
public String execute() throws Exception {
rt=new Regedit(); 
if((this.rt.whethersuccess(name, password)));//主要是这里 去掉后 就正确了  
// 这个方法我用Junit 测试过没问题呀
return SUCCESS;//判断是否登录成功
public class Regedit {
private boolean regedit=false;
public boolean whethersuccess(String name,String password)
{ Person person=new Person();
PersonADO personado=new PersonADO();
 person=personado.getPerson(name);
if(person.getPerson_password().equals(password));
{
regedit=true;
}

return regedit;
}
}//通过Person_name 查询
public class PersonADO {
public Person getPerson(String Person_name)
{  

Session session=null;
Transaction ts=null;
Query query=null;
Person person=null;
try {
session=HibernateSessionFactory.getsession();
ts=session.beginTransaction();
query=session.createQuery("from Person where Person_name=?");
query.setString(0, Person_name);
person=(Person)query.uniqueResult();
query=null;
ts.commit();
} catch (Exception e) {
if(ts!=null)
{
ts.rollback();
}
e.printStackTrace();

}
finally{
HibernateSessionFactory.closesession();
}
return person;
}

}//SessionFactory
public class HibernateSessionFactory {
private static ThreadLocal tl=new ThreadLocal();
private static Configuration sfg=null;
private static SessionFactory sf=null;
private static Session session=null;

static{

sfg=new Configuration().configure();
sf=sfg.buildSessionFactory();
} public static Session getsession()
{
session=(Session)tl.get();
if(session==null||session.isOpen()==false)
{
session=sf.openSession();
tl.set(session);
}
return session;
}

public static void closesession()
{
session=(Session)tl.get();
tl.set(null);
if(session!=null)
{
session.close();
}
}

}
报这样的错误javax.servlet.ServletException: java.lang.reflect.InvocationTargetException
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)

解决方案 »

  1.   

    this.rt,这个rt是定义的属性?你只用了struts2么?
      

  2.   

    if((this.rt.whethersuccess(name, password)));//主要是这里 去掉后 就正确了你这句没抛异常?还有这句是什么意思了,返回true,false都向下跑return success.
    也许是你省略了部分代码。
      

  3.   

    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)你那句判断里面的跳转出错了
      

  4.   


    抛异常了  说HibernateSessionFactory.closesession()这里有错   同样的语句 在JUnit中就能用 还有 运行这个的时候说 不能初始化类HibernateSessionFactory