hibernate和struts2整合,sessionFactory无法加载 我在后台业务层测试hibernate是有效地,值已经取到了。可以通过struts2执行action,在action方法中调用业务层时,hibernate却报错了,factory、session都加载失败。这是怎么回事呢?是jar包的问题,还是?????????求指教谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 异常是这个:type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception java.lang.NullPointerException com.shucb.WYMS.dao.HouseTypeDao.list(HouseTypeDao.java:22) com.shucb.WYMS.service.HouseTypeService.list(HouseTypeService.java:14) com.shucb.WYMS.action.HouseTypeAction.list(HouseTypeAction.java:46) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441) com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter后台运行时可以的,在地址栏里执行action就报错了,配置文件加载失败,就报这个空指针异常了 package com.shucb.WYMS.action;import java.util.*;import com.opensymphony.xwork2.ActionSupport;import com.shucb.WYMS.bean.HouseTypeBean;import com.shucb.WYMS.service.HouseTypeService;public class HouseTypeAction extends ActionSupport { private static final long serialVersionUID = 1L; private HouseTypeService houseTypeService = new HouseTypeService(); private List<HouseTypeBean> houseTypes; private HouseTypeBean houseType; private int house_type_id; public List<HouseTypeBean> getHouseTypes() { return houseTypes; } public void setHouseTypes(List<HouseTypeBean> houseTypes) { this.houseTypes = houseTypes; } public HouseTypeBean getHouseType() { return houseType; } public void setHouseType(HouseTypeBean houseType) { this.houseType = houseType; } public int getHouse_type_id() { return house_type_id; } public void setHouse_type_id(int houseTypeId) { house_type_id = houseTypeId; } public String list() {System.out.println("我到啦"); houseTypes = houseTypeService.list();//有问题 return SUCCESS; } public String add(HouseTypeBean houseType) { houseTypeService.add(houseType); return SUCCESS; } public String update(HouseTypeBean houseType) { houseTypeService.update(houseType); return SUCCESS; } public String addInput() { return INPUT; } public String updateInput() { houseType = houseTypeService.findById(house_type_id); return INPUT; } public static void main(String args []) { HouseTypeService houseTypeService1 = new HouseTypeService();System.out.println(houseTypeService1.list().size());//没问题 }} 把houseTypeService 的实例化放到要到用的方法里看一下 看一下配置文件吧struts和spring整合的时候要把action交给spring来管理的,异常提示是空指针,houseTypeService是不是用spring注入的,如果是,检查配置是有没有字母错误,如果没有,想一下struts2-spring-plugin有没有引入 我没有用spring,直接实例化service的 直接執行沒有問題,加了struts2出問題,看下struts2配置,先不訪問service 我也试过了。不访问service,直接实例化了一个list,是可以传到指定页面上的,并且可以显示出,所以struts跳转问题,配置也没问题。问题是:运行时,struts通过action跳转之前,要通过hibernate取到所需数据(即访问service层),这时要加载配置文件,可是却报错了,sessionFactory获取失败。到底是什么问题呢?? 断点DeBug一下,看是哪里空指针异常。 你是异常不是出在dao里么?和action啥关系?com.shucb.WYMS.dao.HouseTypeDao.list(HouseTypeDao.java:22) LZ的HouseTypeDao也是直接实例化的?最好加个断点调试看看HouseTypeDao是不是空的…… 单独使用都可以,就是整合起来就没用了。session获取失败,所以dao就报错 关于springmvc+Blazads 请高人指点 初级菜鸟想问问大虾们对软件测试岗位的看法 请教一下,怎样把一个方法变为deprecated methods HibernateSynchronizer使用问题 带复选框的目录树 服务器如何读取客户端的文件(急) 如何用actionform的reset方法初始化radio控件的checked属性 jboss数据库问题. J2EE开发尝试 请讨论一下J2EE中数据库设计模式的问题 返回值问题? 问下多种登录方式的解决方案 叫啥?
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception java.lang.NullPointerException
com.shucb.WYMS.dao.HouseTypeDao.list(HouseTypeDao.java:22)
com.shucb.WYMS.service.HouseTypeService.list(HouseTypeService.java:14)
com.shucb.WYMS.action.HouseTypeAction.list(HouseTypeAction.java:46)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter
后台运行时可以的,在地址栏里执行action就报错了,配置文件加载失败,就报这个空指针异常了
import com.shucb.WYMS.bean.HouseTypeBean;
import com.shucb.WYMS.service.HouseTypeService;public class HouseTypeAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private HouseTypeService houseTypeService = new HouseTypeService();
private List<HouseTypeBean> houseTypes;
private HouseTypeBean houseType;
private int house_type_id;
public List<HouseTypeBean> getHouseTypes() {
return houseTypes;
} public void setHouseTypes(List<HouseTypeBean> houseTypes) {
this.houseTypes = houseTypes;
} public HouseTypeBean getHouseType() {
return houseType;
} public void setHouseType(HouseTypeBean houseType) {
this.houseType = houseType;
} public int getHouse_type_id() {
return house_type_id;
} public void setHouse_type_id(int houseTypeId) {
house_type_id = houseTypeId;
}
public String list() {
System.out.println("我到啦");
houseTypes = houseTypeService.list();//有问题
return SUCCESS;
}
public String add(HouseTypeBean houseType) {
houseTypeService.add(houseType);
return SUCCESS;
}
public String update(HouseTypeBean houseType) {
houseTypeService.update(houseType);
return SUCCESS;
}
public String addInput() {
return INPUT;
}
public String updateInput() {
houseType = houseTypeService.findById(house_type_id);
return INPUT;
}
public static void main(String args []) {
HouseTypeService houseTypeService1 = new HouseTypeService();
System.out.println(houseTypeService1.list().size());//没问题
}
}
struts和spring整合的时候要把action交给spring来管理的,异常提示是空指针,houseTypeService是不是用spring注入的,如果是,检查配置是有没有字母错误,如果没有,想一下struts2-spring-plugin有没有引入
问题是:运行时,struts通过action跳转之前,要通过hibernate取到所需数据(即访问service层),这时要加载配置文件,可是却报错了,sessionFactory获取失败。到底是什么问题呢??
com.shucb.WYMS.dao.HouseTypeDao.list(HouseTypeDao.java:22)