OpenEJB system properties

openejb.embedded.remotable bool activate or not the remote services when available
.bind, <service prefix>.port, <service prefix>.disabled, <service prefix>.threads host or IP, port, bool override the host. Available for ejbd and httpejbd services (used by jaxws and jaxrs), number of thread to maneg requests
openejb.embedded.initialcontext.close LOGOUT or DESTROY configure the hook called when closing the initial context. Useful when starting OpenEJB from a new InitialContext([properties]) instantiation. By default it simply logs out the logged user if it exists. DESTROY means clean the container.
javax.persistence.provider string override the JPA provider value
javax.persistence.transactionType string override the transaction type for persistence contexts
javax.persistence.jtaDataSource string override the JTA datasource value for persistence contexts
javax.persistence.nonJtaDataSource string override the non JTA datasource value for persistence contexts
openejb.descriptors.output bool dump memory deployment descriptors. Can be used to set complete metadata to true and avoid scanning when starting the container or to check the used configuration.
openejb.deployments.classpath.require.descriptor CLIENT or EJB can allow to filter what you want to scan (client modules or ejb modules)
openejb.descriptors.output.folder path where to dump deployement descriptors if activated.
openejb.strict.interface.declaration bool add some validations on session beans (spec validations in particular). false by default.
openejb.conf.file or openejb.configuration string OpenEJB configuration file path
openejb.debuggable-vm-hackery bool remove JMS informations from deployment
openejb.validation.skip bool skip the validations done when OpenEJB deploys beans
openejb.deployments.classpath.ear bool deploy the classpath as an ear
openejb.webservices.enabled bool activate or not webservices
openejb.validation.output.level TERSE or MEDIUM or VERBOSE level of the logs used to report validation errors
openejb.user.mbeans.list * or a list of classes separated by , list of mbeans to deploy automatically
openejb.deploymentId.format composition (+string) of {ejbName} {ejbType} {ejbClass} and {ejbClass.simpleName} default {ejbName}. The format to use to deploy ejbs.
openejb.deployments.classpath bool whether or not deploy from classpath
openejb.deployments.classpath.include and openejb.deployments.classpath.exclude regex regex to filter the scanned classpath (when you are in this case)
openejb.deployments.package.include and openejb.deployments.package.exclude regex regex to filter scanned packages
openejb.autocreate.jta-datasource-from-non-jta-one bool whether or not auto create the jta datasource if it doesn't exist but a non jta datasource exists. Useful when using hibernate to be able to get a real non jta datasource.
openejb.altdd.prefix string prefix use for altDD (example test to use a test.ejb-jar.xml).
org.apache.openejb.default.system.interceptors list of interceptor (qualified names) separated by a comma or a space add these interceptor on all beans
openejb.jndiname.strategy.class class name an implementation of org.apache.openejb.assembler.classic.JndiBuilder.JndiNameStrategy
openejb.jndiname.failoncollision bool if a NameAlreadyBoundException is thrown or not when 2 EJBs have the same name
openejb.jndiname.format composition (+string) of these properties: ejbType, ejbClass, ejbClass.simpleName, ejbClass.packageName, ejbName, deploymentId, interfaceType, interfaceType.annotationName, interfaceType.annotationNameLC, interfaceType.xmlName, interfaceType.xmlNameCc, interfaceType.openejbLegacyName, interfaceClass, interfaceClass.simpleName, interfaceClass.packageName default {deploymentId}{interfaceType.annotationName}. Change the name used for the ejb. class qualified name which implements org.quartz.spi.ThreadPool the thread pool used by quartz (used to manage ejb timers)
openejb.localcopy bool default true. whether or not copy EJB arguments[/method/interface] for remote invocations.
openejb.cxf.jax-rs.providers the list of the qualified name of the JAX-RS providers separated by comma or space. Note: to specify a provider for a specific service suffix its class qualified name by ".providers", the value follow the same rules. Note 2: default is a shortcut for jaxb and json providers.
openejb.wsAddress.format composition (+string) of {ejbJarId}, ejbDeploymentId, ejbType, ejbClass, ejbClass.simpleName, ejbName, portComponentName, wsdlPort, wsdlService default /{ejbDeploymentId}. The WS name format.
org.apache.openejb.server.webservices.saaj.provider axis2, sun or null specified the saaj configuration
[<uppercase service name>.]<service id>.<name> or [<uppercase service name>.]<service id> whatever is supported (generally string, int ...) set this value to the corresponding service. example: [EnterpriseBean.]<ejb-name>.activation.<property>, [PERSISTENCEUNIT.]<persistence unit name>.<property>, [RESOURCE.]<name>
log4j.category.OpenEJB.options DEBUG, INFO, ... active one OpenEJB log level. need log4j in the classpath bool activate (by default) or not the OpenEJB JMX MBeans
openejb.nobanner bool activate or not the OpenEJB banner (activated by default)
openejb.check.classloader bool if true print some information about duplicated classes
openejb.check.classloader.verbose bool if true print classes intersections
openejb.additional.exclude string separated by comma list of prefixes you want to exclude and are not in the default list of exclusion
openejb.additional.include string separated by comma list of prefixes you want to remove from thedefault list of exclusion
openejb.offline bool if true can create datasources and containers automatically
openejb.exclude-include.order include-exclude or exclude-include if the inclusion/exclusion should win on conflicts (intersection)
openejb.log.color bool activate or not the color in the console in embedded mode
openejb.log.color.<level in lowercase> color in uppercase set a color for a particular level. Color are BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, DEFAULT.
tomee.serialization.class.blacklist string default list of packages/classnames excluded for EJBd deserialization (needs to be set on server and client sides). Please see the description of Ejbd Transport for details.
tomee.serialization.class.whitelist string default list of packages/classnames allowed for EJBd deserialization (blacklist wins over whitelist, needs to be set on server and client sides). Please see the description of Ejbd Transport for details. boolean if true /tomee webapp is auto-deployed and EJBd is active (true by default for 1.x, false for 7.x excepted for tomee maven plugin and arquillian)

Note: all resources can be configured by properties, see and

OpenEJB client

openejb.client.identityResolver implementation of org.apache.openejb.client.IdentityResolver default org.apache.openejb.client.JaasIdentityResolver. The class to get the client identity.
openejb.client.connection.pool.timeout or openejb.client.connectionpool.timeout int (ms) the timeout of the client
openejb.client.connection.pool.size or openejb.client.connectionpool.size int size of the socket pool
openejb.client.keepalive int (ms) the keepalive duration
openejb.client.protocol.version string Optional legacy server protocol compatibility level. Allows 4.6.x clients to potentially communicate with older servers. OpenEJB 4.5.2 and older use version "3.1", and 4.6.x currently uses version "4.6" (Default). This does not allow old clients to communicate with new servers prior to 4.6.0

TomEE specific system properties

openejb.crosscontext bool set the cross context property on tomcat context (can be done in the traditionnal way if the deployment is don through the webapp discovery and not the OpenEJB Deployer EJB)
openejb.jsessionid-support bool remove URL from session tracking modes for this context (see javax.servlet.SessionTrackingMode)
openejb.myfaces.disable-default-values bool by default TomEE will initialize myfaces with some its default values to avoid useless logging
openejb.web.xml.major int major version of web.xml. Can be useful to force tomcat to scan servlet 3 annotatino when deploying with a servlet 2.x web.xml
tomee.jaxws.subcontext string sub context used to bind jaxws web services, default is webservices
openejb.servicemanager.enabled bool run all services detected or only known available services (WS and RS
tomee.jaxws.oldsubcontext bool wether or not activate old way to bind jaxws webservices directly on root context
openejb.modulename.useHash bool add a hash after the module name of the webmodule if it is generated from the webmodule location, it avoids conflicts between multiple deployment (through ear) of the same webapp. Note: it disactivated by default since names are less nice this way.
openejb.session.manager qualified name (string) configure a session managaer to use for all contexts

TomEE Arquillian adaptor

tomee.ejbcontainer.http.port int tomee port, -1 means random. When using a random port you can retreive it getting this property too.
tomee.arquillian.http int http port used by the embedded arquillian adaptor
tomee.arquillian.stop int shutdown port used by the embedded arquillian adaptor