弹簧自动装配不起作用返回 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程序中的数组奇怪的行为[重复]

    这个问题在这里已经有答案了 我遇到了这个 Java 程序及其以意想不到的方式运行 以下程序计算 int 数组中元素对之间的差异 import java util public class SetTest public static void
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • 解决错误:日志已在具有多个实例的atomikos中使用

    我仅在使用atomikos的实时服务器上遇到问题 在我的本地服务器上它工作得很好 我在服务器上面临的问题是 init 中出错 日志已在使用中 完整的异常堆栈跟踪 java lang RuntimeException Log already
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • java.io.IOException: %1 不是有效的 Win32 应用程序

    我正在尝试对 XML 文档进行数字签名 为此我有两个选择 有一个由爱沙尼亚认证中心为程序员创建的库 还有一个由银行制作的运行 Java 代码的脚本 如果使用官方 认证中心 库 那么一切都会像魅力一样进行一些调整 但是当涉及到银行脚本时 它会
  • 在数据流模板中调用 waitUntilFinish() 后可以运行代码吗?

    我有一个批处理 Apache Beam 作业 它从 GCS 获取文件作为输入 我的目标是根据执行后管道的状态将文件移动到两个 GCS 存储桶之一 如果管道执行成功 则将文件移动到存储桶 A 否则 如果管道在执行过程中出现任何未处理的异常 则
  • 使用 ANTLR 为 java 源代码生成抽象语法树

    如何使用 ANTLR 从 java src 代码生成 AST 有什么帮助吗 好的 步骤如下 前往ANTLR站点 http www antlr org 并下载最新版本 下载Java g和JavaTreeParser g文件来自here htt
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • 当分配给变量时,我可以以某种方式重用 Gremlin GraphTraversals 代码吗?

    我有看起来像这样的 GraphTraversals attrGroup GraphTraversal
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • Spring Data 与 Spring Data JPA 与 JdbcTemplate

    我有信心Spring Data and Spring Data JPA指的是相同的 但后来我在 youtube 上观看了一个关于他正在使用JdbcTemplate在那篇教程中 所以我在那里感到困惑 我想澄清一下两者之间有什么区别Spring
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • Netbeans 8 不会重新加载静态 Thymeleaf 文件

    我通过 Maven 使用 Spring Boot 和 Thymeleaf 当我进行更改时 我似乎无法让 Netbeans 自动重新部署我的任何 Thymeleaf 模板文件 为了看到更改 我需要进行完整的清理 构建 运行 这需要太长的时间
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour

随机推荐

  • 从 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