JBoss 6:将 EJB 注入 servlet

2024-01-12

Folks,

每次新版本的 JBoss 推出时,我都必须重新学习并浪费时间在这些东西上,这让我非常恼火。

我有一个在 JNDI 空间中发现并声明的无状态 EJB:

10:01:53,044 INFO  [org.jboss.ejb3.proxy.impl.jndiregistrar.JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:

DTalk/UserManager/local - EJB3.x Default Local Business Interface
DTalk/UserManager/local-com.doctalk.ejb.UserManagerLocal - EJB3.x Local Business Interface

我需要在 servlet 中使用此 EJB,该 servlet 是 war 的一部分,而 war 是包含 EJB 的 EAR 的一部分。我想使用注射来做到这一点。

当我用最直观的记法时:

@EJB
private UserManager userManager;

我在 JBoss 日志中遇到异常。

当我使用更华丽的符号时,例如:

@EJB( mappedName = "UserManager" )
private UserManager userManager;

Or

@EJB( mappedName = "DTalk/UserManager/local" ) // EAR is called DTalk
private UserManager userManager;

我在 jboss 中没有收到任何注入错误,但注入的 bean 为空。

这令人抓狂,而且浪费大量时间,让我质疑为什么我不放弃 Eclipse/jboss 工具专营权而转而使用 NetBeans 和 GlassFish。

任何见解表示赞赏。

Thanks.


您正在尝试注入(代理)bean 实例本身,而不是其接口。

然而,根据您显示的部署日志记录,您仅通过其(本地)接口声明了要在 JNDI 中绑定的 bean。为了进行注入,您应该将要注入的变量声明为接口:

@EJB
private UserManagerLocal userManager;

或者声明一个no-interface应该为您的 bean 创建视图:

@Stateless
@LocalBean
public class UserManager implements UserManagerLocal {
    ...
}

之后您可以像之前一样声明变量:

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

JBoss 6:将 EJB 注入 servlet 的相关文章

  • 使用 PHPUnit 和 Mockery 进行 Laravel 测试 - 设置控制器测试的依赖关系

    在终于通过了我愚蠢的简单测试后 我有一种感觉 我做得不对 我有一个 SessionsController 负责显示登录页面并让用户登录 我决定不使用外观 这样我就不必扩展 Laravel 的 TestCase 并在单元测试中承受性能影响 因
  • 是否有适合 Java 1.4 和 SE (Swing) 应用程序的优秀 DI 框架?

    我正在寻找一个适用于在 JDK 1 4 下运行的 Java SE Swing 应用程序的依赖注入框架 有没有我可以使用的推荐 DI 框架 Guice 和其他基于注释的框架已经退出 我不想搞乱像 Retroweaver 这样的东西 另外 Sp
  • Dagger @Reusable 范围与 @Singleton

    来自用户手册 http google github io dagger users guide html 有时你想限制 Inject 构造的次数 类已实例化或调用了 Provides 方法 但您没有 需要保证在期间使用完全相同的实例 任何特
  • 在应用程序启动时将实例注册为“单例”bean

    我正在使用 Spring Boot 我正在尝试构建一个实例ServiceImpl时要解决Service是必须的 目前我将实现注释为 Component但这并没有给我机会构建我想要的实例 The ServiceImpl应使用包含磁盘上文件路径
  • AngularJS:服务、提供商、工厂

    之间有什么区别Service Provider and Factory在 AngularJS 中 从我得到的 AngularJS 邮件列表一个惊人的线程 https groups google com forum msg angular 5
  • Guice 字段注入不起作用(返回 null)

    我在使用 Guice 时遇到空值问题 接下来我将向您展示一个类似场景的示例 我知道字段注入是一种不好的做法 但我希望它在演示中像这样工作 我有一个名为B 这是我要注入的 class B Inject public B public void
  • 以编程方式注入依赖项asp.net core

    我刚刚开始Asp net core 依赖注入 我的概念可能不准确 这篇 docs asp net 帖子 https docs asp net en latest mvc controllers dependency injection ht
  • 从 EntityManagerFactory 连接 EntityManager 的问题

    我知道 spring 有它自己的 JPA 对象工厂 但我想让它按原样工作 从那里我将研究最佳实践 我只是处于理解过程中 这是我尝试为其生成 bean 的实际代码 EntityManagerFactory emf Persistence cr
  • 如何在单独的文件中使用 FastAPI Depends 作为端点/路由?

    我在单独的文件中定义了一个 Websocket 端点 例如 from starlette endpoints import WebSocketEndpoint from connection service import Connectio
  • 如何在未附加到应用程序模型的类中使用 eclipse 4 DI?

    我创建了一个带有声明性服务的 OSGI 服务来注入实现接口的对象 如果我将对象注入到附加到应用程序模型 处理程序 部分 的类中 它就可以正常工作 如果我将它注入到未附加到应用程序模型的类中 它总是返回 null 是否可以在未附加到应用程序模
  • 简单注入器:跨同一图的服务注入相同的 UnitOfWork 实例

    我有多个服务 每个服务都有一个UnitOfWork使用注入到构造函数中简易注射器 http simpleinjector codeplex com国际奥委会容器 目前我可以看到每个UnitOfWork实例是一个单独的对象 这很糟糕 因为我使
  • 如何动态实例化服务?

    我有一个Utils服务很重 我想在特定的用户操作中使用其中定义的一些函数 由于这项服务很重 我想延迟实例化它 在用户操作时 我该如何实现这一目标 Service module service Utils function dep1 dep2
  • 应用服务器如何注入私有字段?

    我看到这个问题 注入私有 包或公共字段或提供 setter https stackoverflow com questions 2021716 inject into private package or public field or p
  • IDependencyResolver 是反模式吗?

    我正在对旧版 ASP NET 应用程序进行一些架构更改 我模拟了 ASP NET MVC 的 IDependencyResolver 为依赖解析创建了一些类的原型 我不会发布 因为它的界面几乎相同 但采用其他自然语言 我发现它可能被认为是服
  • MVC 3 将实体作为接口传递

    我目前正在开发一个 MVC 3 项目 使用 Ninject 作为我的 DI 业务对象存储在单独的程序集中 我遇到了控制器参数的问题 当回发 CRUD 操作时 我收到错误 无法创建接口实例 我知道您无法创建接口的实例 但似乎解决此问题的唯一方
  • @Inject 和 @PostConstruct 不适用于单例模式

    我有一堂课如下 public class UserAuthenticator private static UserAuthenticator authenticator Inject private UserRepository user
  • 私有只读接口 - 它是多余的吗?

    我在我的项目中使用 IoC 和 DI 但是我想知道以下是否是一个好的做法 private readonly IMyService myservice 作为服务使用者的类内的字段 该字段在构造函数中设置 我确信我在某处见过这个并且我已经注意到
  • PHP 中的依赖注入

    我一直在研究依赖注入 我是在关注某件事还是完全没有关注 代码是好是坏 依赖注入与否 下面的代码是CMS系统的基础 现在有一个名为 page details 的表 其中存储了所有网页 目录 文件结构 htaccess index php cl
  • 在ConfigureServices中注入依赖

    在我的 ASP Net Core 应用程序中 我需要在以下位置注入一些依赖项 在我的例子中是一个存储库 ConfigureServices method 问题是该方法不允许使用多个参数来注入依赖项 该怎么办呢 这是我的代码 public v
  • 如何使用 ILoggerFactory 记录 Polly 的重试

    或者 如何从静态方法记录 From https github com App vNext Polly https github com App vNext Polly你有这样的例子 其中记录器神奇地可用 Policy Timeout 30

随机推荐