Java论坛网»Java技术»Hibernate+struts问题--异常忘指教源码我贴出来了
Hibernate+struts问题--异常忘指教源码我贴出来了
问?:
一个简单的保存用户名和密码到数据库里,我在UserBean里持久化了类Login后
然后在struts中的Action中调用UserBean里的增加方法addlogin.
但是最后运行的时候产生异常--忘指教
如下:
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.ExceptionInInitializerError
com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:50)
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)
这个是我UserBean的代码:
package com.login.Hibernate;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.MappingException;
import net.sf.hibernate.Session;
import net.sf.hibernate.Transaction;
import com.login.Hibernate.Login;
import net.sf.hibernate.cfg.Configuration;
public class UserBean {
public static SessionFactory sf=null;
private static UserBean bean=null;
private UserBean(){
}
public static synchronized UserBean getBean(){
if(bean==null){
bean=new UserBean();
}
return bean;
}
static {
Configuration config=new Configuration();
try {
config.addClass(Login.class);
sf=(SessionFactory) config.buildSessionFactory();
} catch (MappingException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (HibernateException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public void addLogin(Login login){
Session session=null;
Transaction tx=null;
try {
session=SessionFactory.currentSession();
tx=session.beginTransaction();
session.save(login);
tx.commit();
} catch (HibernateException e) {
// TODO 自动生成 catch 块
try {
tx.rollback();
} catch (HibernateException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
e.printStackTrace();
}finally{
if(session!=null){
try {
session.close();
} catch (HibernateException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
}
}
这个是我loginAction的代码:
Loginform loginForm=(LoginForm)actionForm;
Login login=new Login();//持久化的类
login.setUsername(loginForm.getUsername());
login.setUserpwd(loginForm.getUserpwd());
UserBean bean=new UserBean();
bean.addLogin(login); //这就是第50行 或UserBean.getInstance().addLogin(login);一样有异常
return mapping......;
忘指教
然后在struts中的Action中调用UserBean里的增加方法addlogin.
但是最后运行的时候产生异常--忘指教
如下:
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.ExceptionInInitializerError
com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:50)
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)
这个是我UserBean的代码:
package com.login.Hibernate;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.MappingException;
import net.sf.hibernate.Session;
import net.sf.hibernate.Transaction;
import com.login.Hibernate.Login;
import net.sf.hibernate.cfg.Configuration;
public class UserBean {
public static SessionFactory sf=null;
private static UserBean bean=null;
private UserBean(){
}
public static synchronized UserBean getBean(){
if(bean==null){
bean=new UserBean();
}
return bean;
}
static {
Configuration config=new Configuration();
try {
config.addClass(Login.class);
sf=(SessionFactory) config.buildSessionFactory();
} catch (MappingException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (HibernateException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public void addLogin(Login login){
Session session=null;
Transaction tx=null;
try {
session=SessionFactory.currentSession();
tx=session.beginTransaction();
session.save(login);
tx.commit();
} catch (HibernateException e) {
// TODO 自动生成 catch 块
try {
tx.rollback();
} catch (HibernateException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
e.printStackTrace();
}finally{
if(session!=null){
try {
session.close();
} catch (HibernateException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
}
}
这个是我loginAction的代码:
Loginform loginForm=(LoginForm)actionForm;
Login login=new Login();//持久化的类
login.setUsername(loginForm.getUsername());
login.setUserpwd(loginForm.getUserpwd());
UserBean bean=new UserBean();
bean.addLogin(login); //这就是第50行 或UserBean.getInstance().addLogin(login);一样有异常
return mapping......;
忘指教
答!: 1:
static {
Configuration config=new Configuration();
try {
config.addClass(Login.class);
sf=(SessionFactory) config.buildSessionFactory();
} catch (MappingException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (HibernateException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch(Throwable th){
th.printStackTrace();
}
}
应该是这段里面有错误发生了
加上异常处理语句看看错误信息
Configuration config=new Configuration();
try {
config.addClass(Login.class);
sf=(SessionFactory) config.buildSessionFactory();
} catch (MappingException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (HibernateException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch(Throwable th){
th.printStackTrace();
}
}
应该是这段里面有错误发生了
加上异常处理语句看看错误信息
答!: 2:
改了又改又产生了这个异常找不到类
可我明明有而且目录也对:郁闷
%%%% Error Creating SessionFactory %%%%
net.sf.hibernate.MappingException: Resource: com/yourcompany/HibernateSessionFactory.java not found
at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:335)
at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:1027)
at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:983)
at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:911)
at com.yourcompany.HibernateSessionFactory.currentSession(HibernateSessionFactory.java:48)
at com.yourcompany.UserBean.add(UserBean.java:17)
at com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:55)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)
可我明明有而且目录也对:郁闷
%%%% Error Creating SessionFactory %%%%
net.sf.hibernate.MappingException: Resource: com/yourcompany/HibernateSessionFactory.java not found
at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:335)
at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:1027)
at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:983)
at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:911)
at com.yourcompany.HibernateSessionFactory.currentSession(HibernateSessionFactory.java:48)
at com.yourcompany.UserBean.add(UserBean.java:17)
at com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:55)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)
相关JAVA教程:
ireport导出excel
请各位高手,介绍一些关于学习J2EE的好书
那位高手能简单说一下j2ee项目的开发流程吗?
程序出现如此错误....
菜鸟来送分了,tomcat的小问题
ejc.org(中国大陆地区netbeans.rog唯一官方合作伙伴)发布ejc0.3bate
在线请教,Tomcat服务启动不了,报错信息如下。。。。谢谢!!!
struts里应用menu的问题
如何在窗体中嵌入浏览器
用hql如何向oracle数据库写入date型数据?
Hibernate异常请指教
请帮忙分析一下:axis1.4编写的web service client