Open-EJB 嵌入式容器的命名约定?
Naming Convention for Open-EJB embedded container?
我正在使用 open-ejb
嵌入式容器为 javaee 应用程序编写测试。该应用仅包含一个 @Stateless
bean 和 test
import javax.ejb.embeddable.EJBContainer;
import org.junit.Before;
import org.junit.Test;
public class ProductDaoTest {
private EJBContainer container;
@Before
public void initializeContainerAndDatabase(){
container = EJBContainer.createEJBContainer();
System.out.println(container);
}
@Test
public void test(){
}
}
由于某些原因,嵌入式容器启动的成败取决于源代码所在的文件夹名称。我尝试了不同的名称,有些有效,有些无效,而且模式对我来说似乎是随机的。
hibernate-javaee --> didn't work
hibernate-ejb --> didn't work
javaee-hibernate --> didn't work
abc-xyz --> worked
hibernate-abc-xyz-def --> didn't work
abc-xyz-def-ejb --> didn't work
abc-xyz-def-javaee --> worked
abc-xyz-def-hibernate --> worked
如果失败,异常跟踪是:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.ares.hibernate.javaee.dao.ProductDaoTest
INFO - ********************************************************************************
INFO - OpenEJB http://tomee.apache.org/
INFO - Startup: Wed Jun 08 08:57:56 IST 2016
INFO - Copyright 1999-2015 (C) Apache OpenEJB/TomEE Project, All Rights Reserved.
INFO - Version: 4.7.4
INFO - Build date: 20160304
INFO - Build time: 09:05
INFO - ********************************************************************************
INFO - openejb.home = C:\fakepath\hibernate-abc-xyz-def
INFO - openejb.base = C:\fakepath\hibernate-abc-xyz-def
INFO - Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@26f67b76
INFO - Succeeded in installing singleton service
INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
INFO - Cannot find the configuration file [conf/openejb.xml]. Will attempt to create one for the beans deployed.
INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
INFO - Creating TransactionManager(id=Default Transaction Manager)
INFO - Creating SecurityService(id=Default Security Service)
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.039 sec <<< FAILURE!
test(org.ares.hibernate.javaee.dao.ProductDaoTest) Time elapsed: 1.81 sec <<< ERROR!
org.apache.openejb.OpenEjbContainer$NoModulesFoundException: No modules found to deploy.
1)Maybe descriptors are placed in incorrect location.
Descriptors could go under:
<base-dir>/META-INF or <base-dir>/WEB-INF
but not directly under <base-dir>
Check 'Application Discovery via the Classpath' docs page for more info
2)Maybe no modules are present in the classpath.
Is 'openejb.base' system property pointing to the intended location?
at org.apache.openejb.util.Exceptions.newNoModulesFoundException(Exceptions.java:99)
at org.apache.openejb.OpenEjbContainer$Provider.load(OpenEjbContainer.java:540)
at org.apache.openejb.OpenEjbContainer$Provider.createEJBContainer(OpenEjbContainer.java:322)
at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:56)
at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:43)
at org.ares.hibernate.javaee.dao.ProductDaoTest.initializeContainerAndDatabase(ProductDaoTest.java:14)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access[=11=]0(ParentRunner.java:53)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Results :
Tests in error:
test(org.ares.hibernate.javaee.dao.ProductDaoTest): No modules found to deploy.(..)
如果成功,输出为:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.ares.hibernate.javaee.dao.ProductDaoTest
INFO - ********************************************************************************
INFO - OpenEJB http://tomee.apache.org/
INFO - Startup: Wed Jun 08 09:07:02 IST 2016
INFO - Copyright 1999-2015 (C) Apache OpenEJB/TomEE Project, All Rights Reserved.
INFO - Version: 4.7.4
INFO - Build date: 20160304
INFO - Build time: 09:05
INFO - ********************************************************************************
INFO - openejb.home = C:\fakepath\abc-xyz-def-hibernate
INFO - openejb.base = C:\fakepath\abc-xyz-def-hibernate
INFO - Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@26f67b76
INFO - Succeeded in installing singleton service
INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
INFO - Cannot find the configuration file [conf/openejb.xml]. Will attempt to create one for the beans deployed.
INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
INFO - Creating TransactionManager(id=Default Transaction Manager)
INFO - Creating SecurityService(id=Default Security Service)
INFO - Found EjbModule in classpath: c:\fakepath\abc-xyz-def-hibernate\target\classes
INFO - Beginning load: c:\fakepath\abc-xyz-def-hibernate\target\classes
INFO - Configuring enterprise application: C:\fakepath\abc-xyz-def-hibernate
INFO - Auto-deploying ejb ProductDao: EjbDeployment(deployment-id=ProductDao)
INFO - Configuring Service(id=Default Stateless Container, type=Container, provider-id=Default Stateless Container)
INFO - Auto-creating a container for bean ProductDao: Container(type=STATELESS, id=Default Stateless Container)
INFO - Creating Container(id=Default Stateless Container)
INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
INFO - Auto-creating a container for bean org.ares.hibernate.javaee.dao.ProductDaoTest: Container(type=MANAGED, id=Default Managed Container)
INFO - Creating Container(id=Default Managed Container)
INFO - Using directory C:\Users\UserName\AppData\Local\Temp for stateful session passivation
INFO - Enterprise application "C:\fakepath\abc-xyz-def-hibernate" loaded.
INFO - Assembling app: C:\fakepath\abc-xyz-def-hibernate
INFO - Jndi(name="java:global/abc-xyz-def-hibernate/ProductDao!org.ares.hibernate.javaee.dao.ProductDao")
INFO - Jndi(name="java:global/abc-xyz-def-hibernate/ProductDao")
INFO - Existing thread singleton service in SystemInstance(): org.apache.openejb.cdi.ThreadSingletonServiceImpl@26f67b76
INFO - OpenWebBeans Container is starting...
INFO - Adding OpenWebBeansPlugin : [CdiPlugin]
INFO - Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin]
INFO - All injection points were validated successfully.
INFO - OpenWebBeans Container has started, it took 195 ms.
INFO - Created Ejb(deployment-id=ProductDao, ejb-name=ProductDao, container=Default Stateless Container)
INFO - Started Ejb(deployment-id=ProductDao, ejb-name=ProductDao, container=Default Stateless Container)
INFO - Deployed Application(path=C:\fakepath\abc-xyz-def-hibernate)
org.apache.openejb.OpenEjbContainer@34c01041
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.224 sec
为了确保在 class 路径中发现会话 bean,我添加了
Enumeration<URL> ejbJars = this.getClass().getClassLoader().getResources("org/ares/hibernate/javaee/dao/ProductDao.class");
while (ejbJars.hasMoreElements()) {
URL url = ejbJars.nextElement();
System.out.println("app = " + url);
}
如 this link 所述。 class 在工作和非工作情况下都被发现。
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.ares.hibernate.javaee.dao.ProductDaoTest
app = file:/C:/fakepath/hibernate-ejb/target/classes/org/ares/hibernate/javaee/dao/ProductDao.class
是否有我不知道的命名约定或者我偶然发现了一个错误?
应用程序的源代码是 here。该项目的父目录是 abc-def
,而 运行 mvn clean test
项目运行。如果父目录名称更改为 hibernate-javaee
并且应用程序停止工作。
关于命名约定问题,有none。我很确定您在某个地方(系统属性文件或以编程方式)excluding/including 路径。 Excluding/Including 允许使用通配符,这就是某些文件夹模式有效而某些 none 的原因。要不排除任何内容并包含所有内容,请创建具有以下属性的 EJB 容器。
Properties p = new Properties();
p.put("openejb.deployments.classpath.exclude", "");
p.put("openejb.deployments.classpath.include", ".*");
container = EJBContainer.createEJBContainer(p);
有关详细说明,请参阅 http://tomee.apache.org/application-discovery-via-the-classpath.html。
确保 EJB
部署的其他选项。
选项 1:应用程序发现
如果您不想添加额外的配置文件,您必须确保您的 EJB 文件夹是类路径的一部分并且您的 EJB 包含 ejb-jar.xml
。有关详细说明,请参阅 http://tomee.apache.org/application-discovery-via-the-classpath.html。
选项 2:配置文件
根据日志,您没有配置配置文件。
INFO - Cannot find the configuration file [conf/openejb.xml]. Will attempt to create one for the beans deployed.
在大多数情况下这很好,自定义配置文件除外。尝试使用您的文件夹设置来设置配置文件。有关详细说明,请参阅 http://openejb.apache.org/configuration.html。
一些 patterns 自动从 OpenEJB 扫描中排除。
请注意,openejb.additional.include=myjarprefix 可以让您将其重新添加到扫描包含项中。它将删除冲突的排除项,因此如果您使用它,请使其尽可能长。可以在conf/system.properties.
中设置
我正在使用 open-ejb
嵌入式容器为 javaee 应用程序编写测试。该应用仅包含一个 @Stateless
bean 和 test
import javax.ejb.embeddable.EJBContainer;
import org.junit.Before;
import org.junit.Test;
public class ProductDaoTest {
private EJBContainer container;
@Before
public void initializeContainerAndDatabase(){
container = EJBContainer.createEJBContainer();
System.out.println(container);
}
@Test
public void test(){
}
}
由于某些原因,嵌入式容器启动的成败取决于源代码所在的文件夹名称。我尝试了不同的名称,有些有效,有些无效,而且模式对我来说似乎是随机的。
hibernate-javaee --> didn't work
hibernate-ejb --> didn't work
javaee-hibernate --> didn't work
abc-xyz --> worked
hibernate-abc-xyz-def --> didn't work
abc-xyz-def-ejb --> didn't work
abc-xyz-def-javaee --> worked
abc-xyz-def-hibernate --> worked
如果失败,异常跟踪是:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.ares.hibernate.javaee.dao.ProductDaoTest
INFO - ********************************************************************************
INFO - OpenEJB http://tomee.apache.org/
INFO - Startup: Wed Jun 08 08:57:56 IST 2016
INFO - Copyright 1999-2015 (C) Apache OpenEJB/TomEE Project, All Rights Reserved.
INFO - Version: 4.7.4
INFO - Build date: 20160304
INFO - Build time: 09:05
INFO - ********************************************************************************
INFO - openejb.home = C:\fakepath\hibernate-abc-xyz-def
INFO - openejb.base = C:\fakepath\hibernate-abc-xyz-def
INFO - Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@26f67b76
INFO - Succeeded in installing singleton service
INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
INFO - Cannot find the configuration file [conf/openejb.xml]. Will attempt to create one for the beans deployed.
INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
INFO - Creating TransactionManager(id=Default Transaction Manager)
INFO - Creating SecurityService(id=Default Security Service)
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.039 sec <<< FAILURE!
test(org.ares.hibernate.javaee.dao.ProductDaoTest) Time elapsed: 1.81 sec <<< ERROR!
org.apache.openejb.OpenEjbContainer$NoModulesFoundException: No modules found to deploy.
1)Maybe descriptors are placed in incorrect location.
Descriptors could go under:
<base-dir>/META-INF or <base-dir>/WEB-INF
but not directly under <base-dir>
Check 'Application Discovery via the Classpath' docs page for more info
2)Maybe no modules are present in the classpath.
Is 'openejb.base' system property pointing to the intended location?
at org.apache.openejb.util.Exceptions.newNoModulesFoundException(Exceptions.java:99)
at org.apache.openejb.OpenEjbContainer$Provider.load(OpenEjbContainer.java:540)
at org.apache.openejb.OpenEjbContainer$Provider.createEJBContainer(OpenEjbContainer.java:322)
at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:56)
at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:43)
at org.ares.hibernate.javaee.dao.ProductDaoTest.initializeContainerAndDatabase(ProductDaoTest.java:14)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access[=11=]0(ParentRunner.java:53)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Results :
Tests in error:
test(org.ares.hibernate.javaee.dao.ProductDaoTest): No modules found to deploy.(..)
如果成功,输出为:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.ares.hibernate.javaee.dao.ProductDaoTest
INFO - ********************************************************************************
INFO - OpenEJB http://tomee.apache.org/
INFO - Startup: Wed Jun 08 09:07:02 IST 2016
INFO - Copyright 1999-2015 (C) Apache OpenEJB/TomEE Project, All Rights Reserved.
INFO - Version: 4.7.4
INFO - Build date: 20160304
INFO - Build time: 09:05
INFO - ********************************************************************************
INFO - openejb.home = C:\fakepath\abc-xyz-def-hibernate
INFO - openejb.base = C:\fakepath\abc-xyz-def-hibernate
INFO - Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@26f67b76
INFO - Succeeded in installing singleton service
INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
INFO - Cannot find the configuration file [conf/openejb.xml]. Will attempt to create one for the beans deployed.
INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
INFO - Creating TransactionManager(id=Default Transaction Manager)
INFO - Creating SecurityService(id=Default Security Service)
INFO - Found EjbModule in classpath: c:\fakepath\abc-xyz-def-hibernate\target\classes
INFO - Beginning load: c:\fakepath\abc-xyz-def-hibernate\target\classes
INFO - Configuring enterprise application: C:\fakepath\abc-xyz-def-hibernate
INFO - Auto-deploying ejb ProductDao: EjbDeployment(deployment-id=ProductDao)
INFO - Configuring Service(id=Default Stateless Container, type=Container, provider-id=Default Stateless Container)
INFO - Auto-creating a container for bean ProductDao: Container(type=STATELESS, id=Default Stateless Container)
INFO - Creating Container(id=Default Stateless Container)
INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
INFO - Auto-creating a container for bean org.ares.hibernate.javaee.dao.ProductDaoTest: Container(type=MANAGED, id=Default Managed Container)
INFO - Creating Container(id=Default Managed Container)
INFO - Using directory C:\Users\UserName\AppData\Local\Temp for stateful session passivation
INFO - Enterprise application "C:\fakepath\abc-xyz-def-hibernate" loaded.
INFO - Assembling app: C:\fakepath\abc-xyz-def-hibernate
INFO - Jndi(name="java:global/abc-xyz-def-hibernate/ProductDao!org.ares.hibernate.javaee.dao.ProductDao")
INFO - Jndi(name="java:global/abc-xyz-def-hibernate/ProductDao")
INFO - Existing thread singleton service in SystemInstance(): org.apache.openejb.cdi.ThreadSingletonServiceImpl@26f67b76
INFO - OpenWebBeans Container is starting...
INFO - Adding OpenWebBeansPlugin : [CdiPlugin]
INFO - Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin]
INFO - All injection points were validated successfully.
INFO - OpenWebBeans Container has started, it took 195 ms.
INFO - Created Ejb(deployment-id=ProductDao, ejb-name=ProductDao, container=Default Stateless Container)
INFO - Started Ejb(deployment-id=ProductDao, ejb-name=ProductDao, container=Default Stateless Container)
INFO - Deployed Application(path=C:\fakepath\abc-xyz-def-hibernate)
org.apache.openejb.OpenEjbContainer@34c01041
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.224 sec
为了确保在 class 路径中发现会话 bean,我添加了
Enumeration<URL> ejbJars = this.getClass().getClassLoader().getResources("org/ares/hibernate/javaee/dao/ProductDao.class");
while (ejbJars.hasMoreElements()) {
URL url = ejbJars.nextElement();
System.out.println("app = " + url);
}
如 this link 所述。 class 在工作和非工作情况下都被发现。
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.ares.hibernate.javaee.dao.ProductDaoTest
app = file:/C:/fakepath/hibernate-ejb/target/classes/org/ares/hibernate/javaee/dao/ProductDao.class
是否有我不知道的命名约定或者我偶然发现了一个错误?
应用程序的源代码是 here。该项目的父目录是 abc-def
,而 运行 mvn clean test
项目运行。如果父目录名称更改为 hibernate-javaee
并且应用程序停止工作。
关于命名约定问题,有none。我很确定您在某个地方(系统属性文件或以编程方式)excluding/including 路径。 Excluding/Including 允许使用通配符,这就是某些文件夹模式有效而某些 none 的原因。要不排除任何内容并包含所有内容,请创建具有以下属性的 EJB 容器。
Properties p = new Properties();
p.put("openejb.deployments.classpath.exclude", "");
p.put("openejb.deployments.classpath.include", ".*");
container = EJBContainer.createEJBContainer(p);
有关详细说明,请参阅 http://tomee.apache.org/application-discovery-via-the-classpath.html。
确保 EJB
部署的其他选项。
选项 1:应用程序发现
如果您不想添加额外的配置文件,您必须确保您的 EJB 文件夹是类路径的一部分并且您的 EJB 包含 ejb-jar.xml
。有关详细说明,请参阅 http://tomee.apache.org/application-discovery-via-the-classpath.html。
选项 2:配置文件
根据日志,您没有配置配置文件。
INFO - Cannot find the configuration file [conf/openejb.xml]. Will attempt to create one for the beans deployed.
在大多数情况下这很好,自定义配置文件除外。尝试使用您的文件夹设置来设置配置文件。有关详细说明,请参阅 http://openejb.apache.org/configuration.html。
一些 patterns 自动从 OpenEJB 扫描中排除。
请注意,openejb.additional.include=myjarprefix 可以让您将其重新添加到扫描包含项中。它将删除冲突的排除项,因此如果您使用它,请使其尽可能长。可以在conf/system.properties.
中设置