当前位置: 首页 > 知识库问答 >
问题:

EJB 3.1会话bean未显示在WebLogic 12c JNDI树中

鲁才艺
2023-03-14

下面是我为我的webapp创建的EJB示例。在我的WebLogic 12c服务器中,EJB显示在java:global中,但不在JNDI树的任何其他部分中。我想正因为如此,我在查找这些EJB时遇到了麻烦。

问题1:我的类上的注释是否充分且正确?问题2:我应该能够在java:app和java:module或其他任何地方看到我的EJB吗?

@TransactionManagement(value = TransactionManagementType.CONTAINER)
@TransactionAttribute(value = TransactionAttributeType.REQUIRED)
@Transactional
@Stateless
@Interceptors(SpringBeanAutowiringInterceptor.class)
@Service("adminService")
public class AdminServiceImpl extends AbstractServiceImpl
    implements LocalAdminService, AdminServiceRemote
{
...
}

这是我的jndi.properties

java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://localhost:7001
java.naming.security.principal=weblogic
java.naming.security.credentials=xyz
weblogic.rmi.clientTimeout=120000

共有1个答案

宗政松
2023-03-14

我对我的类的注释是否充分和正确

您使用了太多注释。当您用无状态注释bean时,默认事务将是CONTAINER,并且需要默认TransactionAttribute。因此,您不需要这两个注释。此外,还可以用@service注释bean。但您不能将bean定义为Spring管理的bean和EJB3会话。https://docs.spring.io/spring/docs/4.3.20.RELEASE/javadoc-api/org/springframework/ejb/interceptor/SpringBeanAutowiringInterceptor.html说:

警告:不要在同一部署单元中定义与Spring托管bean和EJB3会话bean相同的bean。特别是,在将该特性与基于Spring的EJB3会话bean的部署结合使用时要小心:确保EJB3会话bean也不会自动检测为Spring管理的bean,使用适当的包限制。

您也不需要Transactional注释。

我应该能够看到我的EJB在java: app和java:模块或其他任何地方列出吗?

但是你可以使用其他的名字空间进行查找。这取决于查找的bean的位置(应用程序和模块)和你正在查找的bean的位置。如果你有任何问题,请检查你的bean的位置。你可以看看javax.naming.NameNotFoundException:当试图查找“abc”时没有找到子上下文“abc”以获取更多信息。

 类似资料:
  • 我正在开发一个Java webapp,试图结合以下技术: Java EE 6 CDI JSF 2 EJB 3.1 Spring Security性 我使用@Stateless EJB bean来完成要完成的实际工作。 我只需要像jSessionCookie(由容器管理)、内部用户名和一些其他内部ID这样的少量会话信息。现在,我想知道把这个会话信息放在哪里,这样我就可以在JSF的支持bean中访问它

  • 我在对话框中遇到WebView的问题。我尝试过许多不同的技巧,但都没有奏效。所以,我的问题是我无法在自定义对话框中加载WebView。它打开对话框,不会给出任何错误,但对话框不会“填充”web视图。它只是显示一个对话框的标题。 AlertDialog.Builder确实在对话框中打开webview,但单击输入字段时不会打开键盘。如果我打开键盘,它会出现在对话框后面。(这似乎是众所周知的bug...

  • 这是我的请求映射: 这是我的POJO: 我期望在Swagger UI中捕获NotNull和Size注释,但是它们没有。请帮助我理解这应该如何工作。谢谢你。

  • > 在EJB3.0及其之前的版本中,该问题是如何处理的? 如果它保留了客户端特定的会话状态,那么单个实例将拥有所有客户端(试图并发访问)的特定数据?它会安全吗?? 如果我们可以在其他会话bean中使用静态最终变量和静态初始值设定项块或静态方法来初始化它们(因为静态变量也是每个类的数据,而不是每个实例的数据),以便跨bean共享公共数据,那么单例会话bean需要什么呢? 在singleton中使用业

  • 在Netbeans中,我创建了一个GUI项目,该项目使用框架前端,我可以添加组件并双击以编辑其事件。我指的是有“源”、“设计”和“历史”选项卡的窗口。 以下是组件和关系: 1-打开文件选择器的按钮。 2-显示文件选择器结果的文本区域。如果用户选择一个文件,它将在文本区域显示文件名;否则它会写“被用户取消”。 3-同时,如果用户选择了一个文件,我想打开一个“please wait”(请等待)对话框,

  • 问题内容: 有状态会话bean和HTTP会话之间有什么关系吗?我们将需要有状态会话Bean的用例是什么,而HTTP会话需要哪些用例。我可以将有状态会话Bean公开为静态Web服务吗? 问题答案: HTTP是一种无状态协议, 这意味着 它是服务器和客户端之间的实际传输协议- 是“无状态的, 因为它在调用之间不记得任何东西。 现在,首先阅读一下什么是HTTPSession和什么是Session Bea