java - 指定 Apache TomEE 的应用程序名称

标签 java jakarta-ee apache-tomee

我需要在独立应用程序中使用 JPA,所以我找到了示例 http://tomee.apache.org/latest/examples/jpa-hibernate.html作为首发。

他们通过创建 EJB 上下文

final Context context = EJBContainer.createEJBContainer(p).getContext();

然后有一个日志行:

INFO - Enterprise application "/Users/dblevins/examples/jpa-hibernate" loaded

您需要知道应用程序名称才能向导出用于查找的搜索字符串:

context.lookup("java:global/jpa-hibernate/Movies");

是什么让我担心我没有找到关于那些“jpa-hibernate”部分来自哪里的信息。它要么来自工件 id,要么更糟糕,来自当前目录名称,这使得使用它的代码非常依赖于开发人员无法控制的上下文。

我完全找到了如何指定该应用程序名称的方法,这样我就可以使用无论谁调用我的代码以及将其复制到哪里都可以工作的查找。

如何配置此应用程序名称?

最佳答案

此单元测试示例中使用的嵌入式 EJB 容器允许在 Java EE 容器外部运行 EJB。可以在这里找到一个很好的介绍/教程:https://docs.oracle.com/javaee/7/tutorial/ejb-embedded002.htm

它支持与常规 EJB-jar 相同的配置文件,即它支持 ejb-jar.xml 配置文件(模块部署描述符)。可以在那里配置模块名称,例如

<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"  
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd"  
         version="3.1">  
    <module-name>myapp</module-name>  
</ejb-jar>  

此文件需要进入 jar 的 META-INF 目录。

关于java - 指定 Apache TomEE 的应用程序名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56148117/

相关文章:

session - Google Compute Engine 负载平衡保持 session

jpa - JPQL 不断抛出 The expression is not a valid conditional expression

database - 在更新 Java EE 应用程序时迁移数据库模式

java - Tomcat:已添加其他 JAR - 上下文重新加载

java - 动态更改 JFreeChart 的部分背景颜色?

java - Java中如何对大的小数进行四舍五入?

Java HttpServletRequest isUserInRole 无法正常工作(根据请求安全性)servlet api 2.4

Java EE 规范与实现

java - 向 Quartz CronTrigger 添加一次性额外触发

Java zk层次结构获取数据库