JBoss AS 6 SNAPSHOT, NonDeterministicInterfaceException
genman Sep 22, 2010 11:26 AMTesting on the latest AS build (as of today).
I have a no-interface singleton/startup bean depending on a bean with a remote and local interface and seeing this error. I'm not sure what this means entirely.
Caused by: org.jboss.ejb3.ejbref.resolver.spi.NonDeterministicInterfaceException: beanInterface specified, com.autodesk.lbs.afx.subscriptionmanager.SubscriptionManager, is not unique within EJB SubscriptionManagerEJB at org.jboss.ejb3.ejbref.resolver.ejb30.impl.EJB30MetaDataBasedEjbReferenceResolver.isMatch(EJB30MetaDataBasedEjbReferenceResolver.java:225) [:] at org.jboss.ejb3.ejbref.resolver.ejb31.impl.EJB31MetaDataBasedEjbReferenceResolver.isMatch(EJB31MetaDataBasedEjbReferenceResolver.java:77) [:] at org.jboss.ejb3.ejbref.resolver.ejb30.impl.EJB30MetaDataBasedEjbReferenceResolver.findSessionBean(EJB30MetaDataBasedEjbReferenceResolver.java:108) [:] at org.jboss.ejb3.ejbref.resolver.ejb30.impl.EJB30MetaDataBasedEjbReferenceResolver.resolveEjb(EJB30MetaDataBasedEjbReferenceResolver.java:76) [:] at org.jboss.ejb3.ejbref.resolver.ejb30.impl.ScopedEJBReferenceResolver.find(ScopedEJBReferenceResolver.java:62) [:] at org.jboss.ejb3.ejbref.resolver.ejb30.impl.ScopedEJBReferenceResolver.resolveWithinDeploymentUnit(ScopedEJBReferenceResolver.java:106) [:] at org.jboss.ejb3.ejbref.resolver.ejb30.impl.ScopedEJBReferenceResolver.resolveEjb(ScopedEJBReferenceResolver.java:77) [:] at org.jboss.ejb3.singleton.aop.impl.AOPBasedSingletonContainer.resolveEJB(AOPBasedSingletonContainer.java:669) [:1.0.0-alpha-14] at org.jboss.injection.EJBRemoteHandler.ejbRefDependency(EJBRemoteHandler.java:132) [:1.5.2] at org.jboss.injection.EJBRemoteHandler.handleFieldAnnotations(EJBRemoteHandler.java:378) [:1.5.2] at org.jboss.injection.InjectionUtil.processFieldAnnotations(InjectionUtil.java:160) [:1.5.2] at org.jboss.injection.InjectionUtil.processAnnotations(InjectionUtil.java:197) [:1.5.2] at org.jboss.ejb3.EJBContainer.processMetadata(EJBContainer.java:680) [:1.5.2] at org.jboss.ejb3.singleton.deployer.SingletonContainerDeployer.deploy(SingletonContainerDeployer.java:215) [:1.0.0-alpha-14] at org.jboss.ejb3.singleton.deployer.SingletonContainerDeployer.deploy(SingletonContainerDeployer.java:85) [:1.0.0-alpha-14] at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployerWithInput.deploy(AbstractRealDeployerWithInput.java:125) [:2.2.0.Alpha7] ... 34 more
The bean in question looks like:
@Stateless public class SubscriptionManagerEJB implements SubscriptionManagerLocal, SubscriptionManager {
And the local/remote interfaces look like:
@Local public interface SubscriptionManagerLocal extends SubscriptionManager {} @Remote public interface SubscriptionManager { // business methods here ... }
This is probably not good coding, still it's a pattern in use throughout the deployment...