-
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.
2012年11月23日 00:15
4个答案 按时间排序 按投票排序
-
BaseAction没有将由Spring容器来管理,只有petstore交由Spring容器来管理了,那么如果你NEW一个BaseAction的实例,如果不显示的从Spring容器中取到Petstore,Petstore就是空值
2012年11月23日 15:10
-
1、注释掉如下 肯定空指针
//ApplicationContext context=new ClassPathXmlApplicationContext("com/petstore/web/resource/spring.xml");
// petstore = (PetStoreImpl)context.getBean("petstore");
return petstore;
2、为什么?
没有集成
http://jinnianshilongnian.iteye.com/blog/14504892012年11月23日 13:58
-
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
-
<param-value>
/WEB-INF/classes/com/petstore/web/resource/spring.xml
</param-value> 你是这个路径。2012年11月23日 02:25
相关推荐
### SSH框架applicationContext.xml头部文件知识点解析 #### 一、SSH框架简介 SSH框架是Struts+Spring+Hibernate三个开源框架的组合,是中国开发者对这三个框架整合应用的一种简称。其中Struts负责MVC(Model-View-...
在Java Web开发中,`struts.xml`, `applicationContext.xml` 和 `web.xml` 是三个至关重要的配置文件,它们各自负责不同的职责,并协同工作来构建一个完整的应用框架。以下是关于这三个配置文件的详细说明。 首先,...
下面我们将详细探讨SSH框架的核心组件、配置文件的作用以及web.xml的重要性。 1. **Struts2**:Struts2是MVC(Model-View-Controller)设计模式的一个实现,它负责处理HTTP请求并调用业务逻辑。Struts2的配置文件...
SSH框架是Java Web开发中常用的三大框架组合,包括Struts2、Spring和Hibernate。它们各自负责Web应用的不同层面,协同工作以提供强大的功能和灵活的架构。本教程将详细介绍如何搭建SSH框架,并实现一个基本的注册...
- `applicationContext.xml`:Spring的配置文件,定义了Bean的实例化、依赖关系和AOP配置等,管理整个应用的生命周期。 - `web.xml`:Web应用的部署描述符,配置了Servlet、Filter、监听器等,用于初始化Spring...
`getBean`是Spring框架提供的一个方法,位于`ApplicationContext`接口中,用于从Spring容器中获取一个已注册的bean实例。通常,bean在配置文件中定义,然后通过`getBean`来获取并使用。例如,我们可以使用以下方式...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个"SSH框架CRUD小例子"压缩包提供了一个基础的示例,展示了如何利用SSH框架进行数据的增删改查(CRUD)操作。在Web...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个压缩包文件"SSHdemo"提供了一个...配合提供的博客地址,可以获取更详细的步骤解释和问题解答,加深对SSH框架的理解。
以下是对搭建SSH框架的详细步骤的解释: 1. **整合Hibernate3.2+Spring2.5**: - 首先,你需要移除`hibernate.cfg.xml`配置文件,因为它将被Spring管理的SessionFactory替代。 - 在`applicationContext.xml`中...
Spring的XML配置文件(如applicationContext.xml)用于声明Bean及其依赖关系,可以管理所有层的组件,包括数据库连接、服务层对象、DAO(数据访问对象)等。Spring还支持事务管理,可以通过XML配置文件定义事务策略...
在本实例中,我们将探讨SSH框架的配置文件及其作用。 1. **log4j.properties**:这是日志记录的配置文件,基于Log4j框架。通过定义不同的日志级别(如DEBUG、INFO、WARN等)和输出目的地(控制台、文件、邮件等),...
4. **配置Spring**:创建Spring的配置文件,如applicationContext.xml,定义Bean,包括Action、Service、DAO等。 5. **配置Hibernate**:设置hibernate.cfg.xml,配置数据库连接信息,实体类和映射文件(.hbm.xml)...
在基于XML的配置中,Spring的bean定义(如applicationContext.xml)负责实例化和装配对象,管理它们的生命周期,并与其他框架(如Hibernate)进行集成。 **Hibernate** 是一个对象关系映射(ORM)框架,用于简化...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个项目是一个基于SSH框架实现的简单加法计算器,对于初学者来说,它是理解SSH框架工作原理和结构的一个良好起点。 ...
下面将详细阐述SSH框架的各个组成部分及其在实际应用中的作用。 **Struts2** 是一个基于MVC设计模式的Web应用框架,主要负责处理HTTP请求并调度到相应的Action,进而调用业务逻辑。它提供了拦截器(Interceptor)...
- `applicationContext.xml` 是Spring的配置文件,用于定义数据源、Hibernate的session工厂以及DAO层和Service层的bean。 - `struts-config.xml` 是Struts的配置文件,定义了Action映射和其他Struts组件。 - `...
下面将详细介绍SSH框架整合的相关知识点。 1. **Spring框架**:Spring是一个全面的后端应用程序框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能。在SSH整合中,Spring主要作为应用的核心,负责管理其他...
- **配置文件**:Spring的配置文件通常为`applicationContext.xml`,用于定义bean的实例化、依赖关系和行为。 2. **Struts框架**: - **作用**:Struts是MVC(Model-View-Controller)架构的实现,主要用于处理...
3. **配置Spring**:创建`applicationContext.xml`配置文件,定义Bean的实例化、依赖关系以及AOP配置。 4. **编写业务逻辑**:创建服务接口和服务实现类,使用@Autowired注解进行依赖注入。 5. **配置数据访问**:...
- 添加Spring支持,通过Add Spring capabilities创建Spring配置文件(如applicationContext.xml),用于管理bean的实例化和依赖注入。 - 在web.xml中配置Spring的DispatcherServlet,使其成为应用的前端控制器。 ...