弹簧自动装配不起作用返回 null

2024-03-03

我现在正在学习春天。这是我的示例代码。我正在使用 jersey、spring、hibernate 和 mysql 作为 REST 服务。

CustomerServiceImpl.java这是 REST 端点(部分代码)

package com.samples.service.impl;

@Path("customers")
public class CustomerServiceImpl implements CustomerService {

    private static Logger logger = Logger.getLogger(CustomerServiceImpl.class);

    @Autowired
    CustomerBO customerBO;

here is CustomerBOImpl.java(部分代码)

package com.samples.BO.impl;

@Component
public class CustomerBOImpl implements CustomerBO {

    @Autowired
    CustomerDAO customerDAO;

    @Autowired
    CustomerAdapter customerAdapter;

CustomerDAOImpl.类 包 com.samples.DAO.impl;

@Repository
public class CustomerDAOImpl implements CustomerDAO {

this is applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    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/context 
              http://www.springframework.org/schema/context/spring-context-3.0.xsd
              http://www.springframework.org/schema/tx 
              http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">

<context:property-placeholder location="classpath*:database.properties"/>
<context:component-scan base-package="com.samples"/>
<context:annotation-config />

</beans>    

这是我收到的前几行异常。

http-bio-8090-exec-1] [class: CustomerServiceImpl] INFO  - list all customers
[http-bio-8090-exec-1] [class: CustomerServiceImpl] INFO  - customerBO is null
May 08, 2014 10:55:29 AM com.sun.jersey.spi.container.ContainerResponse mapMappableContainerException
SEVERE: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container
java.lang.NullPointerException
    at com.samples.service.impl.CustomerServiceImpl.getAllCustomers(CustomerServiceImpl.java:40)
    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:606)
    at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
    at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvo

这是 web.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
    <display-name>Employee Service</display-name>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>

        classpath*:applicationContext.xml
        </param-value>
    </context-param>

    <context-param>
        <param-name>initializeContextOnStartup</param-name> 
        <param-value>true</param-value> 
    </context-param>

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

    <servlet>
        <servlet-name>jersey-serlvet</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
            <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.samples.service</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>jersey-serlvet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>


</web-app>

所以如果我理解这是如何正确工作的,我configuring xml通过提供我想要运行自动扫描的包来自动扫描我的组件。对于我想要自动装配的对象。在CustomerServiceImpl类,我使用@autowiredcustomerBO应该由 CustomerBOImpl.class 定义上的 @Component 注释扫描的对象。您能帮忙解释一下为什么我的自动扫描没有拾取自动连接的 customerBO 对象吗? 谢谢。


我怀疑问题出在你身上CustomerServiceImpl类正在 Spring 外部实例化,无论是通过 servlet 容器还是在代码中显式实例化。你需要让 Spring 实例化它(通过使其成为bean等)或使用<context:spring-configured/>。我不确定如果 servlet 容器实例化对象,后者是否会起作用,因为它可能取决于事情发生的顺序......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

弹簧自动装配不起作用返回 null 的相关文章

  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 从最终实体获取根证书和中间证书

    作为密码学的菜鸟 我每天都会偶然发现一些简单的事情 今天只是那些日子之一 我想用 bouncy castle 库验证 java 中的 smime 消息 我想我几乎已经弄清楚了 但此时的问题是 PKIXparameters 对象的构建 假设我
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • 非 Spring 托管类中 DI 的编译时编织

    我想为标记为的类配置编译时编织 Configurable注释能够将 spring 依赖项注入到初始化的类中new操作员 我不想使用加载时编织 因为我无权访问应用程序服务器的运行脚本 因此无法修改它 另外 我希望能够在测试中使用此类 我的意思
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java

随机推荐

  • 从 C# 运行带有参数的命令行?

    可以使用如下命令在 C 中运行命令行 process new Process process StartInfo FileName command process Start 问题是命令字符串是否包含参数 例如 C My Dir MyFil
  • Ada95 中的线程和信号量

    如何在 Ada95 中使用线程 我可以使用哪些函数来创建 销毁 停止和启动它们 我如何在这种语言中使用信号量 并发性内置于该语言中 因此您可以为任务 即线程 和受保护对象 即比信号量 互斥体 条件变量更强大 使用特定的 Ada 语法 这使得
  • 如何在按钮上添加图像(左)和文本

    如何在按钮上添加图像 左 和文本 举例说明 use android drawableLeft drawable image 在你的布局 xml 中 你也可以从代码中做到这一点 Drawable icon getContext getReso
  • 未调用委托方法“clickedButtonAtIndex:”

    我使用以下代码创建了一个带有两个按钮的警报视图 UIAlertView alertView UIAlertView alloc initWithTitle title message msg delegate nil cancelButto
  • 已删除的类会丢弃错误消息未知>:0:错误:没有这样的文件或目录:

    因此 我和一些朋友正在从事 bitbucket 项目 并且已经意识到 bitbucket 有时不会同步所有文件 但事情是这样的 我继续工作并创建了一个类 我基本上复制了一个旧的视图控制器 称为WelcomescreenViewControl
  • 如何在Unity中制作2D动画

    因此 我正在 Unity 中为 Android 和 iOS 儿童制作 3D 游戏 但我是游戏开发新手 规划资源确实很困难 我们需要创建 2D 动画 纸质角色 并且角色必须具有出色的动画细节 我们一直在考虑几种选择 我们可以创建逐帧动画 但我
  • 使用 AWS Cloudfront 的 hls.js CORS 存在 Cookie 问题

    我正在尝试使用 Cloudfront HLS 功能设置视频流 但我无法让 Hls js 在请求中发送我的凭据 cookie 我已经将 Cloudfront 配置为转发 cookie 和转发访问控制标头 我还设置了 S3 CORS 策略以包括
  • 什么时候在 Java 中使用可变参数?

    我害怕可变参数 我不知道用它们做什么 另外 让人们想传递多少参数就感觉很危险 适合使用它们的上下文示例是什么 Varargs are useful对于任何需要处理的方法不确定数量的物体 一个很好的例子是String format http
  • 使用正则表达式 python 查找电子邮件[重复]

    这个问题在这里已经有答案了 我想在文本文件中查找有效的电子邮件地址 这是我的代码 email re findall r a zA Z w line 但我的代码显然不包含 符号之前有数字的电子邮件地址 我的代码无法处理没有有效结尾的电子邮件地
  • docker build 和 docker run 后如何访问 my falcon 应用程序?

    作为后续问题Docker运行找不到可执行文件 uwsgi https stackoverflow com questions 49073975 docker run cannot find executable uwsgi 我已经成功执行了
  • 聚焦于 UISearchBar 但键盘不出现

    我已经阅读了很多关于如何在打开搜索视图时聚焦搜索栏以使键盘出现的解决方案 所有这些都是这样的 searchBar becomeFirstResponder mine is self searchDisplayController searc
  • 使用 ARC 在其自己的完成块中引用 NSOperation 对象

    我在将一些 NSOperation 代码转换为 ARC 时遇到困难 我的操作对象使用一个完成块 该完成块又包含一个更新主线程上的 UI 的 GCD 块 因为我从操作对象自己的完成块内部引用操作对象 所以我使用 weak 指针来避免内存泄漏
  • 具有字符串分类值的 OneHotEncoder

    我有以下 numpy 矩阵 M a 5 0 2 a 2 1 3 as b 1 2 3 as M np array M 我想对分类值进行编码 a b as 我尝试使用它进行编码OneHot编码器 http scikit learn org s
  • 使用 split/join 将字符串替换为数组

    我正在尝试替换的值item与数组中的值arr 但只有当我使用时我才会得到 arr 1 arr 2 如果我让arr 返回abcdefg 我是 PHP 程序员 我有一个最小的 JavaScript 的概念 有人能给我指点一下吗 var item
  • 如何将图像转换为字符流

    我发现图像可以存储为某种字符串 举个例子 我已经包含了一个带有图像的 ms word 部分 我保存了一个带有图像的word文件并将其保存为xml格式 当我在记事本中打开 xml 文件时 我得到以下部分 它必须是存储为某种文本流的图像 在 n
  • NODE.JS:致命错误 - JS 分配失败 - 解析大型 excel 文件时内存不足

    我正在使用nodejs使用模块 jsxlsx async 解析xlsx文件 并且值将存储在mongodb中 我的代码 xlsx file function err wb if err handling err get data array
  • 无法编辑 IORegistryEntry

    我正在 Mac 上创建一个软件 我想更改 IORegistryEntry 的值 我可以在 IORegistryExplorer 上查看它 但无法编辑它 所以我的理解是我必须通过代码来编辑它 这是我的代码 CFMutableDictionar
  • lambda 表达式的模式匹配

    21 Primitive recursion constructor 22 pr Int gt Int gt Int gt Int gt Int gt Int 23 pr f g xs 0 gt f xs 24 pr f g xs y 1
  • 为什么投影与平铺的比例值存在差异?

    使用d3 geo tile https github com d3 d3 plugins tree master geo tile插件 示例都在地图投影的比例和传递给tile 函数的比例之间存在差异 尤其 tile scale projec
  • 弹簧自动装配不起作用返回 null

    我现在正在学习春天 这是我的示例代码 我正在使用 jersey spring hibernate 和 mysql 作为 REST 服务 CustomerServiceImpl java这是 REST 端点 部分代码 package com