问题标签 [ejb-3.2]

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 投票
1 回答
1145 浏览

java - 我可以在 EJB 3.2 中获得类似实体 bean 的东西吗?

我最近正在阅读一本 Java EE 书籍,显然实体 bean 最近已从 EJB 规范中删除。您应该改用 JPA。但我想要实体豆!!我真正在寻找的是一个可远程访问的 JPA 持久实体,例如 EJB。像这样的东西:

在不删除 bean 注释并编写这样的会话 bean 的情况下,这是否可能:

0 投票
1 回答
218 浏览

java - 我可以使用什么来代替实体 bean?

我想编写一个用于在线学习的 Java EE 应用程序。我正在考虑这个数据表示:

我会拥有更多的东西,但你明白了。

现在,在 EJB 3.2 规范中,实体 bean 已被移除并替换为 JPA 实体。我的问题是如何应对这种悲惨的损失。序列化的 JPA 实体对我不起作用的三个原因:

  1. 表现。我需要通过网络推送整个实体及其所有数据。有相当多的数据,并且可能需要很长时间才能完成所有这些数据。
  2. 安全。如果实体中的所有数据都通过网络传输,则下载它的程序可以访问所有数据。但是,我希望只有在用户具有足够权限的情况下才能访问某些数据。
  3. 写访问。下载数据副本后,客户端应该能够对其进行更改。但是,如果进行了更改,它们将不会持久保存到服务器。当然,我总是可以将实体发送回服务器进行持久化,但我必须通过更慢的上游连接发送所有数据。

那么,在没有实体 bean 的情况下,我如何设计这个系统来满足这些要求呢?

0 投票
1 回答
434 浏览

spring-security - 如何一起使用/配置 JAX-RS 2.0、SpringSecurity 3.1.+、EJB 3.2

我目前正在尝试使用以下主要技术建立一个项目:

  • Java EE 7
  • EJB 3.2
  • JAX-RS(球衣)2.0
  • 玻璃鱼 4
  • 弹簧安全 3.1.5

我看到可以写这样的东西

然后,这意味着 SomeService 会话 Bean 由容器注入,一旦我们调用路径::///apath,一切正常。

现在,我尝试实现的是将 SpringSecurity 框架集成到该代码中。所以我的代码变成了这样:

但是,这不起作用。除了 SpringSecurity 注释之外的所有东西都可以继续工作。只是不考虑授权注释。

在 SpringSecurity 配置文件中,我有类似的东西:

与过滤器链相关的所有内容,因此配置正确。例如,我有:

我在我的 Glassfish 4 服务器日志中看到 SpringSecurity 为我的经过身份验证的用户管理了 ROLE_TEST 访问。我还看到经过身份验证的用户具有我期望的角色列表。

我还尝试使用此配置并依赖 javax.annotation.security 注释,如下所示:

这一次,注解正在工作,并且在用户通过身份验证时会引发异常。但是在这种情况下,我的用户具有角色,但容器使用的 SecurityContext 没有填充与 SpringSecurity 认证的用户相关的 Principal 和角色信息。

最后,我的问题。有没有办法将 JAX-RS / @Stateless / SpringSecurity 授权集成在一起?如果没有,有没有办法从 SrpingSecurity 填充 SecurityContext 以允许 javax.annotation.security 像魅力一样工作?

提前感谢任何可以解决我的问题的帮助、提示、技巧或其他任何东西:D

0 投票
2 回答
15228 浏览

java - WildFly:来自远程客户端的 EJB 调用

我试图在 WildFly 中查找并调用部署为 EAR 的 EJB。我尝试了不同的方法。

它抛出了:

如果我添加以下属性:

我收到了:

然后我看到一个Jboss 论坛帖子说使用http-remoting而不是remote. 但这也没有用。即使使用端口 8080。

我已经尝试过这里提到的方式。但它似乎不适用于我的情况。尽管我已将其放置jboss-ejb-client.properties在从 Eclipse 运行客户端方法的同一目录中。

0 投票
2 回答
14440 浏览

java - 嵌套事务和 EJBContext 的 setRollbackOnly()

我正在阅读 Java EE 7 的事务管理,我对嵌套事务的概念和EJBContext#setRollbackOnly().

假设我有两个会话 Bean,Bean1Impl它们Bean2Impl的签名是:

Java EE 7 教程中所述:

51.3.1.1 必需属性

如果客户端在事务中运行并调用企业 bean 的方法,则该方法在客户端的事务中执行。如果客户端未与事务关联,则容器在运行该方法之前启动一个新事务。

Required 属性是使用容器管理的事务划分运行的所有企业 bean 方法的隐式事务属性。除非您需要覆盖另一个事务属性,否则您通常不会设置Required 属性。由于事务属性是声明性的,您可以在以后轻松更改它们。

在这种情况下,我不需要@TransactionAttribute(REQUIRED)在方法Bean1Impl#method1()Bean2Impl#method2(). 我对吗?

所以在上面的代码中,事务Bean2Impl#method2()将在事务中运行Bean1Impl#method1()

我可以将其视为嵌套事务吗?

如果Exception在方法内部抛出了Bean2Impl#method2()一个最终会导致EJBContext.setRollbackOnly()catch块中调用该方法的方法,并且正如预期的那样,它应该回滚在try该方法的块中执行的操作。在这种情况下,交易会发生什么,以及Bean1Impl#method1(). 也会被回滚吗?我的意思是:

如果调用EJBContext.setRollbackOnly()fromBean2Impl#method2()和会发生什么

  • Bean2Impl#method2()Bean1Impl#method1()在任何数据库操作(如持久化、合并或删除)之前从该方法调用。
  • Bean2Impl#method2()Bean1Impl#method1()在任何数据库操作(如持久化、合并或删除)之后从该方法调用。

最后,如果方法Bean2Impl#method2()成功执行但在成功返回后EJBContext.setRollbackOnly()调用会发生什么?Bean1Impl#method1()Bean2Impl#method2()

0 投票
2 回答
1054 浏览

java - ejb3端点webservice jboss 7抛出非法状态异常

我有一个这样定义的 Web 服务:

我可以在 [host]/TestWS/TestWS?wsdl 看到生成的 wsdl,但是当我调用 web 服务(使用 soapui 5.6.2)时,它会抛出非法状态异常:

谁能帮我解决这个问题?我尝试按照文档进行操作,但无济于事。

0 投票
2 回答
724 浏览

java - 是否允许同时使用 @Stateful 和 @javax.faces.view.ViewScoped?

我的理解是

是允许的,并且是正常使用。

使用新的 JSF 2.2 ViewScoped (javax.faces.view.ViewScoped) 注释,它被记录为与 CDI 范围注释完全兼容,这是否意味着:

是可行的组合吗?

0 投票
2 回答
62 浏览

java - 为什么当我创建 EJB 时也会创建一个接口?

我开始学习 EJB,尽管我知道他们处理业务逻辑,但我不明白为什么 EJB 必须实现接口。

我知道接口是方法的列表,客户端使用它们来访问它们,但是如果我不使用接口怎么办?

我知道存在无接口视图,但是我应该什么时候使用接口呢?

你能用一个没有 IT 的例子来解释一下吗?我正在学习有关 Java EE 7 的课程,但我被困在这部分,我已经阅读了 Oracle 教程,但我在理解这一点时遇到了问题。

我为我的措辞错误道歉。

提前致谢

0 投票
1 回答
129 浏览

java - SSB 中的 EntityManager null

我正在尝试更新最初用 Java6 编写的企业应用程序的小型 alpha 版本。现在我想使用:

  • 爪哇 7
  • JSF 最新
  • 马文
  • 带有 Glassfish 的 EJB 3.2

到目前为止,我可以毫无问题地在 Glassfish 上部署我的 EAR 文件。我的 webapp 可以加载,第一个 JSF 页面导航正常。而且我的 JSF 支持 bean 似乎也可以很好地加载我的无状态会话 bean。调试告诉我,我可以从一个 SSB 到另一个来自我的支持 bean。我缺少的最后一步也是最后一步是我的实体管理器和持久性。

我的班级被注释了@Stateless,我正在使用:

但实体管理器为空:(

我的persistence.xml:

有任何想法吗?persistence.xml 是否必须在 ear maven 模块内?现在它在 ejb maven 模块中,我使用实体管理器的类所在的位置。

0 投票
1 回答
97 浏览

java - 如何在java应用程序中嵌入ejb3?

我有一个 java 桌面应用程序,基于我想要启动 ejb 容器的必要配置。有我可以使用的嵌入式 EJB 容器吗?我怎样才能只使用 jboss ejb3 容器?因为我不需要网络容器。