EJB注入时出现空指针异常

2024-04-14

我用一个无状态 Ejb 编写了非常简单的 Web 应用程序,当我实现接口时,有趣的时刻到来了 - ejb 依赖注入不起作用:

web.xml

<?xml version="1.0" ?>
<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_3_0.xsd"
         version="3.0">
  <display-name>Archetype Created Web Application</display-name>
    <servlet>
        <servlet-name>simpleController</servlet-name>
        <servlet-class>com.SimpleController</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>simpleController</servlet-name>
        <url-pattern>*.job</url-pattern>
    </servlet-mapping>
</web-app>

Servlet类

package com;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class SimpleController extends HttpServlet {

    @EJB
    private SimpleBean bean;

    @Override
    protected void doPost (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().println(bean.getSomeString());
    }

    @Override
    protected void doGet (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }
}

bean

package com;

import javax.ejb.Stateless;

@Stateless
public class SimpleBean /*implements Simple*/ {
    public String getSomeString(){
        return "axaxaxa!";
    }
}

inteface

package com;

import javax.ejb.Remote;

//@Local
@Remote
public interface Simple {
    String getSomeString();
}

因此,当我取消注释“implements Simple”时,我得到了 NullPointerException (在接口中使用 @Remote 或 @Local 注释),在另一种情况下,我得到了“axaxaxa!”。为什么会发生这种情况?我读了Ejb类must实现接口。

我使用 TommEEcas 应用服务器。


通过更改bean变量类型(更改为接口类型而不是类类型)来解决问题

带有 NullPointerException 的版本

private SimpleBean bean;

工作版本

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

EJB注入时出现空指针异常 的相关文章

  • 具有默认值的 Java JAX-RS 自定义参数

    假设我有这个 这只是一个示例 GET Path value address Produces application json public Response getAddress QueryParam user User user 用户是
  • 服务定位器和依赖注入之间的实际区别是什么?

    我正在经历之前的讨论 其中详细讨论了服务定位器和依赖项注入器之间的区别 但我仍然无法理解 我可以在没有任何代码的情况下获得一般响应吗 此代码示例应用了依赖注入 http en wikipedia org wiki Dependency in
  • 防止 Spring Boot 注册 Spring Security 过滤器之一

    我想禁用安全链中的 Spring Security 过滤器之一 我已经看到了防止 Spring Boot 注册 servlet 过滤器 https stackoverflow com questions 28421966 prevent s
  • URL.setURLStreamHandlerFactory

    我正在使用带有嵌入式 Jetty 的可执行 jar 开发一个 Web 应用程序 我的jar包含一个依赖jar jar in jar 我参考了JarRsrcLoader and RsrcURLStreamHandlerFactory由 Ecl
  • Java 正则表达式 - 字母数字,最多一个连字符,句点或下划线,七个字符长

    我是 Java 正则表达式工具的新手 尽管它们潜力巨大 但我很难完成这项任务 我想编写一个正则表达式来验证遵循以下语法的输入字符串 小写字母和数字的任意组合 仅一个下划线 一个破折号或一个句号 无其他特殊字符 最小长度为 5 我想出了以下解
  • 尝试使用 JRI 将 R 与我的 Java 应用程序集成,但出现错误。谁能解释一下原因和解决办法吗?

    我需要将 Java 与 R 集成来运行一些数学命令并使用 R 的功能进行绘图 以下部分代码给出了错误 public static void main String args HelloRWorld r new HelloRWorld r h
  • Java Microsoft Excel API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 线程“main”中的异常 java.lang.StackOverflowError

    我有一段代码 但我无法弄清楚为什么它在线程 main java lang StackOverflowError 中给出异常 这是问题 Given a positive integer n prints out the sum of the
  • Intellij 中的 Google OR-Tools:UnsatisfiedLinkError

    我正在建立一个应该使用 Google OR Tools 的 java 框架 下面的代码编译成功 但在运行时抛出异常 Exception in thread main java lang UnsatisfiedLinkError com go
  • Jenkins 的代码覆盖率 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 发生错误。请参阅日志文件 - eclipse juno

    每当我启动 Eclipse Juno 时 都会出现错误 发生错误 请查看日志文件 C Program Files eclipse configuration 1362989254411 log 有的网站说卸载jdk重新安装 我这样做了 但没
  • Java:java.util.ConcurrentModificationException

    我正在制作 2D 目前正在研究用子弹射击 子弹是一个单独的类 所有项目符号都存储在称为项目符号的数组列表中 当它超出屏幕一侧 Exception in thread main java util ConcurrentModification
  • 为什么我的代码会产生错误:该语句没有返回结果集[重复]

    这个问题在这里已经有答案了 我正在从 Microsoft SQL Server Studio 执行以下查询 该查询工作正常并显示结果 SELECT INTO temp table FROM md criteria join WHERE us
  • Java中的回调接口是什么?

    SetObserver 接口的代码片段取自有效的Java 避免过度同步第67条 public interface SetObserver
  • Java:由 HTTP 连接创建的等待连接线程存活时间很长

    我有一个服务器端代码 用于检查 SOAP 服务是否已启动 代码如下 String response while response length 0 try final URL url new URL DummySoapServiceURL
  • 为什么这个私人浮动字段变为零?

    我有一些奇怪的行为 我很难向自己解释 称为 textureScale 的浮点字段变为零 如果某些代码正在更改该值 则可以解释这一点 然而 我希望能够通过将其设置为 私有最终浮点 来导致构建失败 或者至少是运行时异常 那么无论更改该值都将失败
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 失败时石英重试

    假设我有一个这样配置的触发器
  • 防止Java实例化的正确方法[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • Telegram Bot getUpdates VS setWebhook

    我想为企业开发一个机器人 我不知道使用获取更新 https core telegram org bots api getupdates开发 Windows 桌面应用程序并在 vps 上运行该应用程序的方法 通过https github co
  • 使用 React 动态更改输入文本时如何启用 Ctrl + Z?

    我正在尝试创建一个简单的React Markdown 编辑器 https github com andrerpena react mde 该组件是完全受控的 问题是 如果用户选择abc在文本区域中并单击B按钮 我需要打电话onchange
  • 将函数指针转换为另一种类型

    假设我有一个函数接受void void 用作回调的函数指针 void do stuff void callback fp void void callback arg 现在 如果我有一个这样的函数 void my callback func
  • Flyway可以从数据模型中找到并生成迁移文件吗?

    大家好 我一直在看 Flyway 但我不确定如何使用它 就我而言 我有一个实体模型 使用 JPA 注释 对我来说 有用的是 FlyWay 可以在我每次调用 迁移 并生成迁移文件时找出模型上的更改 这就是 Rails 等的工作方式 Rails
  • 解释一下Smalltalk的一段代码?

    我无法理解这段 Smalltalk 代码 line self upTo Character cr size 0 whileTrue 有人可以帮忙解释一下吗 如果您有代码来源的映像 可以做的一件简单的事情就是在其上运行调试器并单步执行 如果您
  • iOS 模拟器无法访问任何 URL 并显示错误“此连接不是私有的”

    我遇到了一个问题 我的 iPhone 模拟器无法访问 SAFARI 上的任何网站 我也无法从我的应用程序调用任何 API SAFARI 显示的错误是下面提到的两个错误之一 此连接不是私有的 Refer Screenshot OR Safar
  • 如何优化多图像拼接?

    我正在 Visual Studio 2012 C 中进行多图像拼接 我已经修改了缝合 详细 cpp https github com opencv opencv blob master samples cpp stitching detai
  • 查询返回准确的行数

    我有一个表存储两个外键 实现 n m 关系 其中一个指向一个人 subject 另一个针对特定项目 现在 一个人可能拥有的物品数量在另一个表中指定 我需要一个查询 该查询将返回与一个人可能拥有的物品数量相同的行数 其余记录可以填写NULL价
  • ElectronJS - 在窗口之间共享 redux 存储?

    我有一个基于的电子应用程序electron react boilerplate 现在 我有一个窗口按照我希望的方式运行 我开始创建一个新窗口 我目前有 2 个 html 文件 每个窗口一个 包含 div 根 div div div div
  • 父控件的 WPF ContextMenu 在具有自己的 ContextMenu 的子控件上打开

    我在基于 Canvas 的 WPF 中制作了一个相当不错的 NodeGraph 现在我正在通过右键单击菜单添加一些漂亮的功能 这些菜单是上下文相关的 这意味着右键单击图形的背景将显示图形 ContextMenu 而右键单击图形中的节点将显示
  • 将DBContext服务添加到Worker项目中的program.cs中

    对于这一切还相当陌生 所以如果我做了任何愚蠢的事情 我深表歉意 我正在尝试实现一个与我设置的本地 SQL Server Express 数据库进行通信的工作项目 我将连接字符串存储在我的AppSettings Json如下所示 Loggin
  • 为什么 printf 仍然可以在 RAX 小于 XMM 寄存器中 FP 参数数量的情况下工作?

    我正在关注Linux 64系统中的 开始x64汇编编程 一书 我正在使用 NASM 和 gcc 在关于浮点运算的章节中 本书指定了以下用于添加 2 个浮点数的代码 在本书和其他在线资源中 我读到寄存器 RAX 根据调用约定指定要使用的 XM
  • 将数组作为声音播放并并行记录其输出

    我知道 Octave MATLAB 可以将数组作为声音播放 但我想知道 Octave 是否可以做到这一点 我想循环播放一系列频率 并让 Octave 使用计算机上的扬声器播放它们 并让 Octave 也记录使用麦克风输入的声音来获取最大值
  • 关于僵尸进程和线程的问题

    自从我阅读一些有关进程和线程的新主题以来 我脑海中浮现出这些问题 如果有人能帮助我 我会很高兴 1 如果一个线程被标记为不可取消 然后该进程在临界区内被终止 会发生什么 2 我们的程序是否有操作系统已知的主线程 我的意思是操作系统是否给予程
  • MSYS2环境的使用

    我想彻底了解MSYS2平台环境的使用情况 部分描述可在以下位置找到 https www msys2 org docs environments https www msys2 org docs environments 我理解的事情 MSY
  • 如何在 MongoDB 的 Linq 查询中使用 .Contains 和 ToLower?

    MongoDB C Linq 如何在 Linq 查询中使用 contains 和 ToLower List
  • 正则表达式将 10 位数字与特定模式完全匹配

    假设我给出一个模式 123 或 1234 我想匹配以该模式开头的任何 10 位数字 它应该正好有 10 位数字 Example 模式 123 应匹配 1234567890 但不匹配 12345678 我尝试了这个正则表达式 123 d 0
  • 按位运算符的结果是如何产生的?

    我很惊讶我在谷歌上找不到这个听起来简单的问题的答案 在检查了大约十几个不同的页面之后 我只想在这里问 根据这一页 http www leepoint net notes java data expressions bitops html 3
  • 如何在 Android 上回滚事务?

    这是交易的标准习惯用法 db beginTransaction try db setTransactionSuccessful finally db endTransaction 我想添加一个 catch 块 并且我想发出回滚 有可能吗 我
  • EJB注入时出现空指针异常

    我用一个无状态 Ejb 编写了非常简单的 Web 应用程序 当我实现接口时 有趣的时刻到来了 ejb 依赖注入不起作用 web xml