0 0

SSH框架,无法获得applicationContext.xml的bean实例,详细情况如下10

baseAction.java

public class BaseAction extends ActionSupport
{
private static final long serialVersionUID = 1L;
private PetStore petstore;
public PetStore getPetstore()
{

  如果注视下面两句会报空指针错误
  //ApplicationContext context=new ClassPathXmlApplicationContext("com/petstore/web/resource/spring.xml");
// petstore = (PetStoreImpl)context.getBean("petstore");
  return petstore;
}
public void setPetstore(PetStore petstore)
{
  this.petstore = petstore;
}
}

CategoryAction.java

public class CategoryAction  extends BaseAction
{

private static final long serialVersionUID = 1L;
private Category category;
private String catid;
@SuppressWarnings("unchecked")
public String execute() throws Exception
{
    category = getPetstore().getCategory(catid);

  return SUCCESS;

}







spring.xml

<bean id="petstore" class="com.petstore.services.impl.PetStoreImpl">
  <property name="accountDAO" ref="accountDAO"/>
  <property name="categoryDAO" ref="categoryDAO"/>
  <property name="inventoryDAO" ref="inventoryDAO"/>
  <property name="itemDAO" ref="itemDAO"/>
  <property name="productDAO" ref="productDAO"/>
  <property name="supplierDAO" ref="supplierDAO"/>
</bean>

web.xml


<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
   classpath:com/petstore/web/resource/spring.xml
  </param-value>
</context-param>

<listener>
  <listener-class>
   org.springframework.web.context.ContextLoaderListener
  </listener-class>

</listener>

错误信息:

java.lang.NullPointerException
com.petstore.web.actions.CategoryAction.execute(CategoryAction.java:28)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:511)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)



note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.




4个答案 按时间排序 按投票排序

0 0

BaseAction没有将由Spring容器来管理,只有petstore交由Spring容器来管理了,那么如果你NEW一个BaseAction的实例,如果不显示的从Spring容器中取到Petstore,Petstore就是空值

2012年11月23日 15:10
0 0

1、注释掉如下 肯定空指针
//ApplicationContext context=new ClassPathXmlApplicationContext("com/petstore/web/resource/spring.xml");
// petstore = (PetStoreImpl)context.getBean("petstore");
  return petstore;

2、为什么?
没有集成
http://jinnianshilongnian.iteye.com/blog/1450489

2012年11月23日 13:58
0 0

ClassPathXmlApplicationContext
这个类,默认获取的是WEB-INF/classes/下的路径,也就是在myeclipse的src下的路径,所以用这个是获取不到WEB-INF下的配置文件的...
BeanFactory ac = new ClassPathXmlApplicationContext("applicationContext.xml"); 
BeanFactory ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); 
BeanFactory ac = new ClassPathXmlApplicationContext("classpath:/applicationContext.xml");

2012年11月23日 09:10
0 0

<param-value>
  /WEB-INF/classes/com/petstore/web/resource/spring.xml
  </param-value>   你是这个路径。

2012年11月23日 02:25

相关推荐

    SSH框架applicationContext.xml头部文件

    ### SSH框架applicationContext.xml头部文件知识点解析 #### 一、SSH框架简介 SSH框架是Struts+Spring+Hibernate三个开源框架的组合,是中国开发者对这三个框架整合应用的一种简称。其中Struts负责MVC(Model-View-...

    struts.xml和applicationContext.xml、web.xml的配置

    在Java Web开发中,`struts.xml`, `applicationContext.xml` 和 `web.xml` 是三个至关重要的配置文件,它们各自负责不同的职责,并协同工作来构建一个完整的应用框架。以下是关于这三个配置文件的详细说明。 首先,...

    SSH框架配置文件及web.xml jar包

    下面我们将详细探讨SSH框架的核心组件、配置文件的作用以及web.xml的重要性。 1. **Struts2**:Struts2是MVC(Model-View-Controller)设计模式的一个实现,它负责处理HTTP请求并调用业务逻辑。Struts2的配置文件...

    ssh框架搭建并简单实例实现(注册登录功能)

    SSH框架是Java Web开发中常用的三大框架组合,包括Struts2、Spring和Hibernate。它们各自负责Web应用的不同层面,协同工作以提供强大的功能和灵活的架构。本教程将详细介绍如何搭建SSH框架,并实现一个基本的注册...

    SSH框架.zip

    - `applicationContext.xml`:Spring的配置文件,定义了Bean的实例化、依赖关系和AOP配置等,管理整个应用的生命周期。 - `web.xml`:Web应用的部署描述符,配置了Servlet、Filter、监听器等,用于初始化Spring...

    处理ssh组合框架中如何用getBean获取实体

    `getBean`是Spring框架提供的一个方法,位于`ApplicationContext`接口中,用于从Spring容器中获取一个已注册的bean实例。通常,bean在配置文件中定义,然后通过`getBean`来获取并使用。例如,我们可以使用以下方式...

    SSH框架CRUD小例子.rar

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个"SSH框架CRUD小例子"压缩包提供了一个基础的示例,展示了如何利用SSH框架进行数据的增删改查(CRUD)操作。在Web...

    SSH框架搭建源码

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个压缩包文件"SSHdemo"提供了一个...配合提供的博客地址,可以获取更详细的步骤解释和问题解答,加深对SSH框架的理解。

    搭建SSH框架步骤

    以下是对搭建SSH框架的详细步骤的解释: 1. **整合Hibernate3.2+Spring2.5**: - 首先,你需要移除`hibernate.cfg.xml`配置文件,因为它将被Spring管理的SessionFactory替代。 - 在`applicationContext.xml`中...

    ssh,XML配置

    Spring的XML配置文件(如applicationContext.xml)用于声明Bean及其依赖关系,可以管理所有层的组件,包括数据库连接、服务层对象、DAO(数据访问对象)等。Spring还支持事务管理,可以通过XML配置文件定义事务策略...

    ssh框架配置文件的实例

    在本实例中,我们将探讨SSH框架的配置文件及其作用。 1. **log4j.properties**:这是日志记录的配置文件,基于Log4j框架。通过定义不同的日志级别(如DEBUG、INFO、WARN等)和输出目的地(控制台、文件、邮件等),...

    ssh框架入门实例

    4. **配置Spring**:创建Spring的配置文件,如applicationContext.xml,定义Bean,包括Action、Service、DAO等。 5. **配置Hibernate**:设置hibernate.cfg.xml,配置数据库连接信息,实体类和映射文件(.hbm.xml)...

    ssh-xml-template.zip

    在基于XML的配置中,Spring的bean定义(如applicationContext.xml)负责实例化和装配对象,管理它们的生命周期,并与其他框架(如Hibernate)进行集成。 **Hibernate** 是一个对象关系映射(ORM)框架,用于简化...

    java ssh框架的加法计算器

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个项目是一个基于SSH框架实现的简单加法计算器,对于初学者来说,它是理解SSH框架工作原理和结构的一个良好起点。 ...

    ssh框架完整实例

    下面将详细阐述SSH框架的各个组成部分及其在实际应用中的作用。 **Struts2** 是一个基于MVC设计模式的Web应用框架,主要负责处理HTTP请求并调度到相应的Action,进而调用业务逻辑。它提供了拦截器(Interceptor)...

    ssh框架搭建教程.pdf

    - `applicationContext.xml` 是Spring的配置文件,用于定义数据源、Hibernate的session工厂以及DAO层和Service层的bean。 - `struts-config.xml` 是Struts的配置文件,定义了Action映射和其他Struts组件。 - `...

    Java SSH 框架整合,学习源码

    下面将详细介绍SSH框架整合的相关知识点。 1. **Spring框架**:Spring是一个全面的后端应用程序框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能。在SSH整合中,Spring主要作为应用的核心,负责管理其他...

    SSH框架源代码

    - **配置文件**:Spring的配置文件通常为`applicationContext.xml`,用于定义bean的实例化、依赖关系和行为。 2. **Struts框架**: - **作用**:Struts是MVC(Model-View-Controller)架构的实现,主要用于处理...

    SSH框架搭建步骤

    3. **配置Spring**:创建`applicationContext.xml`配置文件,定义Bean的实例化、依赖关系以及AOP配置。 4. **编写业务逻辑**:创建服务接口和服务实现类,使用@Autowired注解进行依赖注入。 5. **配置数据访问**:...

    SSH 框架整合详细步骤记录

    - 添加Spring支持,通过Add Spring capabilities创建Spring配置文件(如applicationContext.xml),用于管理bean的实例化和依赖注入。 - 在web.xml中配置Spring的DispatcherServlet,使其成为应用的前端控制器。 ...

Global site tag (gtag.js) - Google Analytics