Alexander Solstad Larsen created TOMEE-1828:
-----------------------------------------------
Summary: OpenEJB application fails to find singleton container
when openejb.offline = true
Key: TOMEE-1828
URL: https://issues.apache.org/jira/browse/TOMEE-1828
Project: TomEE
Issue Type: Bug
Components: TomEE Core Server
Reporter: Alexander Solstad Larsen
When starting tomee with openejb.offline=true, the openejb application fails to
deploy since it can not find a singleton container - even if one is defined in
tomee.xml.
{noformat:title=Stack Trace}
INFO - Configuring Service(id=MyStatelessContainer, type=Container,
provider-id=Default Stateless Container)
INFO - Configuring Service(id=MyStatefulContainer, type=Container,
provider-id=Default Stateful Container)
INFO - Configuring Service(id=MySingletonContainer, type=Container,
provider-id=Default Singleton Container)
INFO - Configuring Service(id=MyManagedContainer, type=Container,
provider-id=Default Managed Container)
INFO - Using 'openejb.system.apps=true'
SEVERE - FATAL ERROR: Unknown error in Assembler. Please send the following
stack trace and this message to [email protected] :
java.lang.IllegalStateException: system application (openejb) needs a
singleton container. Noone is defined and container is in offline mode. Please
define one in tomee.xml.
at
org.apache.openejb.config.SystemAppInfo.findSingletonContainer(SystemAppInfo.java:134)
at
org.apache.openejb.config.SystemAppInfo.preComputedInfo(SystemAppInfo.java:43)
at
org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfiguration(ConfigurationFactory.java:559)
at
org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfiguration(ConfigurationFactory.java:627)
at
org.apache.openejb.assembler.classic.Assembler.getOpenEjbConfiguration(Assembler.java:500)
at
org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:479)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:150)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:307)
at
org.apache.tomee.catalina.TomcatLoader.initialize(TomcatLoader.java:266)
at
org.apache.tomee.catalina.ServerListener.lifecycleEvent(ServerListener.java:168)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
at
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:401)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:115)
at org.apache.catalina.startup.Catalina.load(Catalina.java:606)
at org.apache.catalina.startup.Catalina.load(Catalina.java:629)
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:498)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:311)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:494)
{noformat}
{noformat:title=Possible fix}
---
a/container/openejb-core/src/main/java/org/apache/openejb/config/SystemAppInfo.java
+++
b/container/openejb-core/src/main/java/org/apache/openejb/config/SystemAppInfo.java
@@ -126,7 +126,7 @@ public final class SystemAppInfo {
// simplified logic compared to AutoConfig
private static String findSingletonContainer(final ConfigurationFactory
configFactory) throws OpenEJBException {
for (final ContainerInfo containerInfo :
configFactory.getContainerInfos()) {
- if (SingletonSessionContainerInfo.class.isInstance(configFactory))
{
+ if (SingletonSessionContainerInfo.class.isInstance(containerInfo))
{
return containerInfo.id;
}
}
{noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)