[jboss-user] [EJB 3.0] - EJB injection fails with "beanInterface is not unique within

krokodylowy do-not-reply at jboss.com
Tue Jun 9 08:54:39 EDT 2009


Hi 
I got ear wit ejb and webservices web module.
On JBoss 5.1.0DR I can't use ejb from ws. 
In my case always error "beanInterface specified, Test, is not unique within EJB TestBean " is raised.

The same code works well on Weblogic Server. 
Do I need any extra configuration or annotations?


My code.
EJB module / Main bean
@Stateless(name = "TestBean", mappedName = "Test")
public class TestBean implements TestLocal, TestRemote {
 code implementation
}

EJB module /  Interfaces
public interface Test {
}
@Local
public interface TestLocal extends Test {
}
@Remote
public interface TestRemote extends Test {
}

webservices web module /webservice

@WebService(name = "Test", serviceName = "TestService")
@SOAPBinding(style = Style.RPC)
public class TestWS {

  @EJB(name = "TestBeanRef")
  private Test test;      /* I don't want declare TestRemote here ! */
}

web.xml
(...)

  <servlet-name>TestService</servlet-name>
  <servlet-class>TestWS</servlet-class>

<ejb-ref>
  <ejb-ref-name>TestBeanRef</ejb-ref-name>
  <ejb-ref-type>Session</ejb-ref-type>
  TestRemote
</ejb-ref>


Stacktrace

14:41:02,968 ERROR [InjectionException] Cannot inject field annotated with @EJB annotation: private Test TestWS.test
org.jboss.ejb3.common.resolvers.spi.NonDeterministicInterfaceException: beanInterface specified, Test, is not unique within EJB TestBean
	at org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolverBase.isMatch(EjbReferenceResolverBase.java:186)
	at org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolverBase.getMatch(EjbReferenceResolverBase.java:119)
	at org.jboss.ejb3.common.resolvers.plugins.FirstMatchEjbReferenceResolver.resolveEjbFromRoot(FirstMatchEjbReferenceResolver.java:105)
	at org.jboss.ejb3.common.resolvers.plugins.FirstMatchEjbReferenceResolver.resolveEjbFromRoot(FirstMatchEjbReferenceResolver.java:121)
	at org.jboss.ejb3.common.resolvers.plugins.FirstMatchEjbReferenceResolver.resolveEjb(FirstMatchEjbReferenceResolver.java:68)
	at org.jboss.wsf.container.jboss50.deployment.metadata.EJBBeanReferenceResolver.resolveField(EJBBeanReferenceResolver.java:81)
	at org.jboss.wsf.common.injection.resolvers.AbstractReferenceResolver.resolve(AbstractReferenceResolver.java:80)
	at org.jboss.wsf.common.injection.InjectionHelper.injectEJBAnnotatedAccessibleObjects(InjectionHelper.java:359)
	at org.jboss.wsf.common.injection.InjectionHelper.injectResources(InjectionHelper.java:111)
	at org.jboss.wsf.container.jboss50.invocation.InvocationHandlerJSE.getTargetBean(InvocationHandlerJSE.java:85)
	at org.jboss.wsf.container.jboss50.invocation.InvocationHandlerJSE.invoke(InvocationHandlerJSE.java:97)
	at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:222)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:474)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:295)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:205)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:131)
	at org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(AbstractEndpointServlet.java:85)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:619)
14:41:02,968 ERROR [SOAPFaultHelperJAXWS] SOAP request exception
org.jboss.wsf.common.injection.InjectionException: Cannot inject field annotated with @EJB annotation: private Test TestWS.test
	at org.jboss.wsf.common.injection.InjectionException.rethrow(InjectionException.java:106)
	at org.jboss.wsf.common.injection.InjectionHelper.injectEJBAnnotatedAccessibleObjects(InjectionHelper.java:365)
	at org.jboss.wsf.common.injection.InjectionHelper.injectResources(InjectionHelper.java:111)
	at org.jboss.wsf.container.jboss50.invocation.InvocationHandlerJSE.getTargetBean(InvocationHandlerJSE.java:85)
	at org.jboss.wsf.container.jboss50.invocation.InvocationHandlerJSE.invoke(InvocationHandlerJSE.java:97)
	at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:222)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:474)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:295)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:205)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:131)
	at org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(AbstractEndpointServlet.java:85)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:619)
Caused by: org.jboss.ejb3.common.resolvers.spi.NonDeterministicInterfaceException: beanInterface specified, Test, is not unique within EJB TestBean
	at org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolverBase.isMatch(EjbReferenceResolverBase.java:186)
	at org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolverBase.getMatch(EjbReferenceResolverBase.java:119)
	at org.jboss.ejb3.common.resolvers.plugins.FirstMatchEjbReferenceResolver.resolveEjbFromRoot(FirstMatchEjbReferenceResolver.java:105)
	at org.jboss.ejb3.common.resolvers.plugins.FirstMatchEjbReferenceResolver.resolveEjbFromRoot(FirstMatchEjbReferenceResolver.java:121)
	at org.jboss.ejb3.common.resolvers.plugins.FirstMatchEjbReferenceResolver.resolveEjb(FirstMatchEjbReferenceResolver.java:68)
	at org.jboss.wsf.container.jboss50.deployment.metadata.EJBBeanReferenceResolver.resolveField(EJBBeanReferenceResolver.java:81)
	at org.jboss.wsf.common.injection.resolvers.AbstractReferenceResolver.resolve(AbstractReferenceResolver.java:80)
	at org.jboss.wsf.common.injection.InjectionHelper.injectEJBAnnotatedAccessibleObjects(InjectionHelper.java:359)
	... 30 more


View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4236366#4236366

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4236366



More information about the jboss-user mailing list