Java 如何设置嵌入式TOME的系统属性?

Java 如何设置嵌入式TOME的系统属性?,java,openejb,apache-tomee,Java,Openejb,Apache Tomee,我读过这个链接: 我正在尝试设置“openejb.deployments.classpath=true” 这是我的代码: public class Run { private static EJBContainer ejbContainer; public static void main( String[] args ) throws NamingException, InterruptedException, IOException { Properties props = n

我读过这个链接: 我正在尝试设置“openejb.deployments.classpath=true”

这是我的代码:

public class Run {

private static EJBContainer ejbContainer;

public static void main( String[] args ) throws NamingException, InterruptedException, IOException {

    Properties props = new Properties();
    props.setProperty(EJBContainer.PROVIDER, "tomee-embedded");
    props.setProperty("openejb.deployments.classpath", "true");
    ejbContainer = EJBContainer.createEJBContainer(props);

}
}

pom.xml:

    <dependency>
    <groupId>org.apache.openejb</groupId>
    <artifactId>tomee-embedded</artifactId>
    <version>1.6.0.2</version>
</dependency>

我错过了什么吗?

tomee embedded稍后设置此属性(在tomee启动后,并且在tomee启动时记录此属性)。因此,您的属性设置正确。

只需在启动容器之前设置属性即可

...
System.setProperty("openejb.deployments.classpath", "true");

Properties props = new Properties();
...

你这样做是绝对正确的

new Properties();
props.setProperty(EJBContainer.PROVIDER, "tomee-embedded");
props.setProperty("openejb.deployments.classpath", "true");
ejbContainer = EJBContainer.createEJBContainer(props);
但是您忽略了您还设置了一个配置文件。你可以在日志中看到它

INFO - openejb configuration file is 'C:\cygwin\tmp\apache...

因此,请确保您的配置文件没有以编程方式覆盖您的设置。

旁注:TomEE Embedded EJBContainer没有良好的类路径部署(它部署模块/jar/configured war))


也许可以看看tomee embedded的容器类,它支持比1.6版本更新的版本中的类路径部署。

在容器管理环境中,在代码中可以在哪里设置此属性?据我所知,只要我有任何代码控件,容器就已经启动。@Amalgovinus您可以使用配置文件。
INFO - openejb configuration file is 'C:\cygwin\tmp\apache...