问题标签 [ejb-3.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
24603 浏览

java - EJB 3.1 @EJB 注入 POJO

使用新的 EJB 3.1 规范是否可以将 EJB 注入到 pojo 中?我知道在 EJB 3.0 中,@EJB 注释可用于注入 EJB,但这不适用于简单的 pojo。

如果不是,我必须在 JNDI 中查找 bean,因为我知道您不能简单地使用 new 关键字。

0 投票
2 回答
9200 浏览

java - Java EE DependsOn 本地 EJB

我有一个 EJB 项目,其@SingletonEJB 定义为:

然后我有另一个 EJB 项目和另一个 EJB:

但是,@DependsOn它不起作用,我尝试了许多不同的值,但@DependsOn没有成功。服务器无法启动:

模块部署错误:Atlas:部署应用程序时出现异常:java.lang.RuntimeException:EJB OutboundRouting%%%EOL%%% 的 DependsOn 依赖项“DataModelBeanLocal”无效

我不确定我应该在这里做什么,有什么建议吗?

0 投票
2 回答
3394 浏览

java - Glassfish 初始化 Singleton bean 两次

我有一个被初始化两次的单例 ejb。我不知道为什么,据我所知,它完全捍卫了拥有一个单例 bean 的观点。任何帮助将不胜感激。正如你所看到的,我试图放入一个静态布尔值来防止多次初始化(不是应该需要它),但它没有任何区别。

豆:

日志输出片段:

它是在创造 2 个豆子吗?还是两次部署应用程序?

顺便说一句,我正在使用 glassfish v3,这足够成熟吗?我应该使用 v2 还是其他?想法?

0 投票
7 回答
98469 浏览

java - 无状态和有状态企业 Java Bean

我正在阅读 Java EE 6 教程,并试图了解无状态会话 bean 和有状态会话 bean 之间的区别。如果无状态会话 bean 在方法调用之间不保留它们的状态,为什么我的程序会这样运行?

客户端

我期待 getNumber 每次都返回 0 但它返回 1 并且在我的浏览器中重新加载 servlet 会增加更多。问题在于我对无状态会话 bean 如何工作的理解,而不是库或应用程序服务器,当然。有人可以给我一个简单的 hello world 类型的无状态会话 bean 示例,当您将其更改为有状态时,它的行为会有所不同?

0 投票
1 回答
15919 浏览

java - EJB 3.1 API 的 Maven 存储库

我可以将哪个 Maven 存储库用于 EJB 3.1 API 依赖项?

0 投票
4 回答
13707 浏览

glassfish - 如何将会话 Bean 注入消息驱动 Bean?

我对 Java EE 相当陌生,所以这可能很愚蠢。请多多包涵:D

我想将无状态会话 bean 注入消息驱动 bean。基本上,MDB 获得一条 JMS 消息,然后使用会话 bean 来执行工作。会话 bean 保存业务逻辑。

这是我的会话 Bean:

匹配界面:

这是我的MDB:

到目前为止,还不是火箭科学,对吧?

不幸的是,在将其部署到 glassfish v3 并向相应的 JMS 队列发送消息时,我收到 glassfish 无法找到 TestBean EJB 的错误:

所以我的问题是:

  • 这是将会话 bean 注入另一个 bean(特别是消息驱动 bean)的正确方法吗?
  • 为什么命名查找失败?
0 投票
3 回答
2664 浏览

web-services - EJB3 远程与 Web 服务,性能?

我正在计划一个 webapp,每个使用它的人都有一个客户端,可以在其计算机上运行计算(因为这些计算不能在服务器上完成,负载太大......),然后将结果发送到服务器。

我想会有很多人对我的应用程序感兴趣,这就是为什么我想知道我的架构是否良好以及我是否能够处理成千上万的人。

我打算通过带有 Glassfish 服务器的 JNDI 公开远程 EJB,因此 1000 人可以同时使用这些 EJB(我猜可能有 5-50 个请求/秒)来检索本地计算所需的数据,然后发送结果...

将 EJB 暴露给许多客户会很昂贵吗?使用webservices,rmi,另一种解决方案会更好吗?

你会为我将要做什么推荐另一种架构吗?

0 投票
2 回答
7555 浏览

maven-2 - Maven2多模块ejb 3.1项目-部署错误

问题是我在将我的项目部署到 Glassfish 时收到以下错误:

但是,让我们从 Maven2 中的项目结构开始...

我已经构建了以下场景:

MultiModuleJavaEEProject - 父模块
-> 模型 ---> 打包为 jar
-> ejb1 ----> 打包为 ebj
-> ejb2 ----> 打包为 ebj
-> web ----> 打包为 war

所以模型、ejb1、ejb2 和 web 是父 MultiModuleJavaEEProject 的子/模块。

_ejb1 取决于型号。
_ejb2 依赖于 ejb1。
_web 依赖于 ejb2。

pom的样子:

_父:

_模型:

_ejb1:

_ejb2:

_网络:

而模型只是一个简单的 Pojo:

并且 ejb1 只包含一个 STATELESS ejb。

以及 ejb2 只是一个无状态的 ejb:

而 web 模块只包含一个 Servlet:

Web 模块中的 web.xml 文件如下所示:

所以我没有设置其他文件。任何 ejb 文件中都没有 ejb-jar.xml,因为我使用的是 EJB 3.1。所以我认为 ejb-jar.xml 描述符是可选的。我这个对吗?
但问题是,已经提到的错误:

有人可以帮忙吗?

0 投票
1 回答
6609 浏览

java - 如何在 Servlet 中使用 EJB 3.1 DI?(无法通过@EJB 从 Web 应用程序注入会话 bean)

我想将 Web 应用程序(gwt,jpa)合并到一个单独的 2 个应用程序(ejb/jpa 中的业务登录和 gwt 中的 Web 客户端)。目前我无法从 Web 应用程序(简单的 servlet)注入我的 bean

我正在使用 glassfish v3。模块limbo(ejb jar)依赖于模块lust(战争)。

如果我使用 lust 的编译器输出的 lust 一切正常(如果 web 应用程序中的 ejb 并且作为一个应用程序一起部署)。

我弄乱了一些容器配置吗?

这是我的步骤:

我有一些limbo.jar(ejb-jar)部署到ejb容器。我不使用任何 ejb-jar.xml,只使用注释。





比我尝试从 lust.war 中的 Web 应用程序使用 PersistentService 会话 bean(包含在limbo.jar 中)(limbo.jar 和 lust.war不在 ear 中



网页.xm



当servelt正在加载i ge 404错误(请求的资源()不可用。)

和日志中的错误:

全球的


javax.enterprise.system.tools.deployment.org.glassfish.deployment.common


ejb jar 使用此信息日志部署:




如果从其他应用程序注入,我是否需要添加一些额外的配置?

一些想法?


在@Remote 的情况下


日志 :


信息部署日志


如果我使用远程业务逻辑调用,是否需要将我的 ejb jar 包含到 WEB=INF/lib 中?为什么 DI 在远程情况下不起作用?

如果我包含来自limbo模块的编译输出并提供:

为什么我无法为另一个 Web 应用程序查找 PersistentServiceRemote(PersistentServiceBean 的远程接口)?

通过 glassfish 的示例代码它应该可以工作 (.

有任何想法吗?


行。正如帕斯卡所说。我们需要在 webapp 中打包远程接口。我们可以在不同的应用程序中使用本地接口注入。如果您需要使用本地接口,您需要在您的应用程序中包含 ejb jar。当前设计 - 将远程接口打包到 webapp

0 投票
1 回答
6123 浏览

servlets - 在 servlet 中注入 jms 资源和 MDB 的最佳实践

使用 ejb 3.1、servlet 3.0(glassfish 服务器 v3)

场景:我有侦听 jms 消息并将处理交给其他会话 bean(无状态)的 MDB。Servelet 注入 jms 资源。

问题一:为什么servlet在使用静态声明时不能注入jms资源?

我得到的错误是:

[#|2010-05-03T15:18:17.118+0300|警告|glassfish3.0|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=35;_ThreadName=Thread-1;| StandardWrapperValve [WorkerServlet]:PWC1382:为 servlet WorkerServlet com.sun.enterprise.container.common.spi.util.InjectionException 分配异常:在 com.sun 为类 ua.co.rufous.server.services.WorkerServiceImpl 创建托管对象时出错。 Enterprise.container.common.impl.util.InjectionManagerImpl.createManagedObject(InjectionManagerImpl.java:312) 在 com.sun.enterprise.web.WebContainer.createServletInstance(WebContainer.java:709) 在 com.sun.enterprise.web.WebModule。 createServletInstance(WebModule.java:1937) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1252) 原因:com.sun.enterprise.container.common.spi.util。InjectionException:尝试将 Unresolved Message-Destination-Ref ua.co.rufous.server.services.WorkerServiceImpl/queue@java.lang.String@null 注入 com.sun 的类 ua.co.rufous.server.services.WorkerServiceImpl 的异常.enterprise.container.common.impl.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:614) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:384) 在 com.sun .enterprise.container.common.impl.util.InjectionManagerImpl.injectInstance(InjectionManagerImpl.java:141) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.injectInstance(InjectionManagerImpl.java:127) 在 com.sun .enterprise.container.common.impl.util.InjectionManagerImpl.createManagedObject(InjectionManagerImpl.java:306) ... 27 更多原因:com.sun.enterprise.container.common.spi.util.InjectionException:在仅支持基于实例的注入的类上非法使用静态字段 private static javax.jms.Queue ua.co.rufous.server.services.WorkerServiceImpl.queue在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:532) ... 31 更多 |#]

我的 MDB:

没有静态声明一切正常:

问题 2:使用 MDB 的最佳实践是什么:在 onMessage() 中处理完整请求或在 onMessage() 方法中调用另一个 bean(在我的情况下为无状态 bean)来处理它。处理包括对肥皂服务的少量调用,因此完整处理时间可能为 3 秒。

谢谢你。