Java 指定Apache TomEE的应用程序名称
我需要在独立的应用程序中使用JPA,所以我发现这个示例是初学者 它们通过Java 指定Apache TomEE的应用程序名称,java,jakarta-ee,apache-tomee,Java,Jakarta Ee,Apache Tomee,我需要在独立的应用程序中使用JPA,所以我发现这个示例是初学者 它们通过 final Context context = EJBContainer.createEJBContainer(p).getContext(); 然后有一个日志行: 信息-企业应用程序/Users/dblevins/examples/jpa hibernate已加载 您需要知道该应用程序名称才能向导出搜索字符串进行查找: context.lookup("java:global/jpa-hibernate/Movies")
final Context context = EJBContainer.createEJBContainer(p).getContext();
然后有一个日志行:
信息-企业应用程序/Users/dblevins/examples/jpa hibernate已加载
您需要知道该应用程序名称才能向导出搜索字符串进行查找:
context.lookup("java:global/jpa-hibernate/Movies");
让我担心的是,我没有发现这些“jpa hibernate”部分来自哪里的信息。它或者来自工件id,或者更糟糕的是,来自当前目录名,这使得使用它的代码严重依赖于开发人员无法控制的上下文
我已经完全找到了谷歌如何指定应用程序名的方法,这样无论谁调用我的代码以及代码复制到哪里,我都可以使用查找功能
如何配置此应用程序名称 本单元测试示例中使用的嵌入式EJB容器允许在JavaEE容器之外运行EJB。在这里可以找到一个很好的介绍/教程: 它支持与常规EJBJAR相同的配置文件,即它支持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目录。您所说的独立应用程序是什么意思?所示的示例似乎是部署到TomEE应用服务器的ejb jar。可能重复的有帮助吗?@JochenReinhardt该示例是JUnit测试的一个片段,因此绝对不会部署到任何容器…@JochenReinhardt standalone=使用java命令或IDE或可执行jar清单作为普通java应用程序运行。。。。我的代码中绝对不存在EAR或WAR。对不起,我没有注意到嵌入的EJB容器。它允许在JavaEE容器之外运行EJB。但它也支持ejb-jar.xml中的。也可以看@JochenReinhardt是的,类似于,如果你不知道去哪里看,很难找到:哦,非常感谢!