【问题标题】:Problems with Dependency Injection依赖注入的问题
【发布时间】:2016-05-18 17:18:33
【问题描述】:

我是 Java EE 的新手,我有一个尚未解决的问题。

我正在处理一个 Java EE 项目,该项目有一个 EJB 项目、一个包含 Web 服务的项目和另一个具有可视界面(Web 应用程序)的项目。

问题是当我尝试从我的 Web 服务接口之一到用户界面(Web 应用程序项目)进行依赖注入时。首先,我想澄清一下,所有通过标签进行的注入都没有奏效,并尝试了以下方法:InitialContext.doLookup (name);,效果很好。

我能够获得我的接口的实现,但是当我调用其中一个返回对象的方法时,返回的对象的所有字段都为空。当我从我创建的客户端测试服务时,它会返回包含所有值的对象。我事先检查了所有类和对象都实现了Serializable 接口。

我的问题是:为什么我在 Web 应用程序项目中注入的服务实现的方法返回空对象?

我正在使用:

  1. Eclipse

  2. Glassfish 服务器

  3. JAXB(到 Web 服务)

【问题讨论】:

  • 请展示一些代码来演示这个问题。请不要分享 500 行代码,仅用于演示此问题的最低限度。
  • 还包括您正在使用的 Eclipse 和 Glassfish 版本。
  • “Web 服务”是指 JAX-RPC、JAX-WS、JAX-RS、...?不幸的是,它们的注入能力各不相同。

标签: java jakarta-ee dependency-injection jaxb ejb-3.0


【解决方案1】:

我很抱歉如此回复,我想告诉你我可以解决这个问题,并想对我遇到的问题发表评论。

正如我所说,我正在开发一个 JavaEE 项目。该项目包含一个 EJB 模块、一个 EAR 项目、一个 Web 服务和一个动态 Web 项目。首先,我想澄清一下项目是由其他人制作的,我正在继续这项工作。我可能会发现问题在于他们在 EJB 项目中具有持久性,这还不错,但是当生成实体而不是将它们保留在包含持久性的项目中时,开发人员将它们移动到另一个名为“Utils”的项目中作为另一个应用程序模块包含在 EAR 中。一切似乎都适用于实体实例,但显然包含持久性 (EJB) 的项目在其包中没有物理实体,因此在通过注入发出请求时无法构建和填充这些数据。

感谢您的关心和快速响应。

问候。

【讨论】:

  • 我建议您创建一个 ejb-client 项目和另一个 ejb,其中您编写的项目 ejb-cleint 仅在您编写 bean 的其他 ejb 项目中的接口和本地和远程类。具有 ejb-client 项目的 Maven 不得与 auq'un 另一个项目有关系(这种方式,当您只需要使用远程时,您将 ejb-client 项目复制到将调用您的应用程序远程的另一个应用程序中)和项目 ejb 他可以看到 ejb-client 项目,您可以通过这种方式编写 bean(实现项目接口 ejb-client)
猜你喜欢
  • 2015-11-21
  • 2014-12-27
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-02
  • 2012-06-09
相关资源
最近更新 更多