我有下面的JSF托管bean:

package com.example;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

@Component

@ManagedBean

public class Bean implements Serializable {

@Autowired

private SomeService someService;

public void update() {

someService.update(someEntity);

}

// ...

}

和下面的Spring服务:

@Transactional

@Repository

public class SomeService {

@Autowired

private SessionFactory sessionFactory;

// ...

}

Spring的配置如下:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

Example configuration to get you started.

当我调用JSF托管bean update()方法时,它抛出NullPointerException:

javax.faces.FacesException: #{bean.update()}: java.lang.NullPointerException

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:117)

at org.springframework.faces.webflow.FlowActionListener.processAction(FlowActionListener.java:71)

at org.springframework.faces.model.SelectionTrackingActionListener.processAction(SelectionTrackingActionListener.java:55)

at javax.faces.component.UICommand.broadcast(UICommand.java:315)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:786)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1251)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:191)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

at java.lang.Thread.run(Thread.java:722)

Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:101)

... 28 more

Caused by: java.lang.NullPointerException

at com.example.Bean.update(Bean.java:45)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at org.apache.el.parser.AstValue.invoke(AstValue.java:278)

at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)

at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)

... 29 more

换句话说,someService为null.我无法为自己的生活弄清楚原因.我在bean的顶部声明了@Component.所以我希望@Autowired可以正常工作.任何帮助都会很棒!

autowired的对象为null_spring-为什么我的@Autowired对象为null?相关推荐

  1. 一起写框架-Ioc内核容器的实现-对象的调用-属性注入容器的对象(十)

    实现功能 需求:在类的成员属性使用@Autowirde注解注入容器中的对象. 实现思路 要实现这个功能.我们首先要思考一个问题:类与类的关系是在调用的建立的,还是说在创建对象的时候就就将建立了? -- ...

  2. php 字符串数组转数组对象_php怎么将数组转成对象?

    php将数组转成对象的方法:1.使用数据类型转换,在数组变量前添加"(Object)"来将数组转成对象.2.先使用json_encode()函数将数组转换为json字符串:然后使用 ...

  3. java对象的访问定位_2、JVM-Java对象的创建、对象结构、对象访问定位-Go语言中文社区...

    目录 记录下来方便个人学习复习 注:根据new的参数在常量池中定位一个类的符号引用 --这句话的意思是:常量池相当于c语言中的指针地址集合,所以就是在常量池中保存new对象的地址,通过地址定位对象在堆 ...

  4. python类、对象、方法、属性之类与对象笔记

    为什么80%的码农都做不了架构师?>>>    python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... ...

  5. python一切皆对象的理解_Python中万物皆对象?的理解

    在很多地方都看到有过这样一句话,但是对象这个词的理解依然停留在谈朋友那个对象上-- python中一切皆为对象,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) ...

  6. php对象持久化,在 Oracle 中完成 PHP5 对象的持久

    在 Oracle 中完成 PHP5 对象的持久 作者:Barry McKay 在数据库驱动的 Web 应用程序中实现 PHP5 对象的持久,朝着完全面向对象的 Web 应用程序开发迈进重要的一步. 2 ...

  7. Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...

    Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...

  8. 定义一个dto对象_正确理解DTO、值对象和POCO

    (此文章同时发表在本人微信公众号"dotNET每日精华文章") 今天推荐的文章比较技术化也比较简单,但是对于一些初学者而言,可能也是容易搞混的概念:就是如何理解DTO.值对象和PO ...

  9. 【设计模式】代理模式 ( 动态代理使用流程 | 创建目标对象 | 创建被代理对象 | 创建调用处理程序 | 动态创建代理对象 | 动态代理调用 )

    文章目录 前言 一.静态代理的弊端 二.动态代理的优势 三.动态代理使用流程 1.目标对象接口 2.被代理对象 3.调用处理程序 4.客户端 四.动态生成 代理对象 类 的 字节码 文件数据 前言 代 ...

  10. java对象序列化作用_Java学习之——理解对象序列化

    Java的对象序列化就是把对象写入到输出流中,用来存储或传输:反序列化就是从输入流中读取对象.简单的来说是指将那些实现了Serializable接口的对象转换成一个字节序列,并能够在以后将这个字节序列 ...

最新文章

  1. 阿里技术专家:为什么说失败的微服务架构,大多死在分布式事务?
  2. 内存分配的几个函数的简单对比分析
  3. SharePoint 2013创建应用程序时IIS端口文件夹下没文件
  4. concat特征融合_深度特征融合---理解add和concat之多层特征融合
  5. Linux性能监控-Top
  6. php模板怎么导入服务器_php项目怎么放到服务器
  7. Linux基础命令---检查密码文件pwck 1
  8. html页面整体换算单位,通过媒体查询meta和JS转换REM单位实现100%自适应
  9. 三菱5uplc伺服电机指令_实例 | PLC触摸屏控制伺服电机程序设计
  10. Google翻译api接入及Java、Python实现
  11. 魔兽世界单机版(模拟器)入门介绍--Starting off with WoW Emulation. 翻译
  12. HEALTH_WARN 1 filesystem is degraded,一直在rejoin状态
  13. 20210729-Codeforces Round #735 (Div. 2)
  14. linux 批量下载fnl,TMS370C356FNL
  15. Vba Excel 自动分级
  16. Android Killer(反编译工具)技巧
  17. QPushButton去掉虚线框
  18. 微信中屏蔽分享按钮一把梭快速干
  19. 配置samba服务器全过程
  20. Word文档密码忘记了

热门文章

  1. Ubuntu12环境下Thin+rails(4)+ruby(2)+nginx+mysql 配置
  2. 如何优雅地「蜗居」?
  3. WEB平台架构之:LAMP(Linux+Apache+MySQL+PHP)
  4. Portal-Basic Java Web 应用开发框架:应用篇(十一) —— 整合 Spring
  5. 灵活运用 SQL SERVER FOR XML PATH
  6. android md 颜色,安卓MD(Material Design)规范
  7. 存储过程的参数可以使用sql的函数
  8. 当使用easyui时,jquery的设置disabled属性方法失效
  9. jqgrid demo java_java – jqgrid如何显示服务器端消息
  10. 底层实现红黑树_图解:红黑树