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

时间:2014-05-30 20:22:00

标签: java openejb tomee

我看过这个链接: Embedded Configuration我试图设置" 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>

但我仍然得到如下输出:

INFO - openejb configuration file is 'C:\cygwin\tmp\apache-tomee1917201117325246334-home\conf\openejb.xml'
INFO - Configuring Service(id=Tomcat Security Service, type=SecurityService, provider-id=Tomcat Security Service)
INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
INFO - Using 'openejb.system.apps=false'
INFO - Using 'openejb.deployments.classpath=false'
INFO - Creating TransactionManager(id=Default Transaction Manager)

我错过了什么吗?

4 个答案:

答案 0 :(得分:0)

tomee embedded稍后设置此属性(在tomee启动之后,这会在tomee启动时记录)。所以你的财产设置正确。

答案 1 :(得分:0)

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

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

Properties props = new Properties();
...

答案 2 :(得分:0)

你这样做是绝对正确的。

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...

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

答案 3 :(得分:0)

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

也许看一下tomee embedded的Container类,它支持类似于1.6版本的最新版本中的类路径部署。