[arquillian-issues] [JBoss JIRA] (ARQ-836) Enricher does not lookup EJB successfully unless the name of deployed archive is "test" or beanName/mappedName attribute is set

Aslak Knutsen (JIRA) jira-events at lists.jboss.org
Thu Mar 29 08:58:47 EDT 2012


    [ https://issues.jboss.org/browse/ARQ-836?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12680312#comment-12680312 ] 

Aslak Knutsen commented on ARQ-836:
-----------------------------------

The proper fix is to allow some direct interaction with the AppServer, but this is currently not possible. 

As far as I know, there is no way to know which App/Module your in via standard APIs, and there is no way of getting a mapping between EJB InterfaceName and JNDI name. 

The solution is probably to remove the 'convenience/common naming' lookup attempt, and just simply fail if not using mappedName. (unless you're using CDI of course, which actually has the hooks into the appserver)

Adding support for java:/module/ will work in some cases, but not all, since we're not always executing in that module(ear with ejb jars)
                
> Enricher does not lookup EJB successfully unless the name of deployed archive is "test" or beanName/mappedName attribute is set
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ARQ-836
>                 URL: https://issues.jboss.org/browse/ARQ-836
>             Project: Arquillian
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 1.0.0.CR7
>            Reporter: Martin Kouba
>
> The problem is in the way *jndiNames* array is constructed if beanName or mappedName attribute of @EJB annotation is not set.
> For following SLSB with no-interface view...
> {code}
> @Stateless
> public class Foo {
>   public void ping() {
>   }
> }
> {code}
> ... EJBInjectionEnricher tries to lookup following JNDI names:
> {noformat}
> java:global/test.ear/test/FooBean, 
> java:global/test.ear/test/Foo, 
> java:global/test/Foo, 
> java:global/test/FooBean, 
> java:global/test/Foo/no-interface, 
> test/FooBean/local, 
> test/FooBean/remote, 
> test/Foo/no-interface, 
> FooBean/local, 
> FooBean/remote, 
> Foo/no-interface, 
> ejblocal:com.acme.ejb.Foo, 
> com.acme.ejb.Foo,
> {noformat}
> Parts like "java:global/test.ear/test/" and "java:global/test/" are hard coded. So if the name of the test archive is not "test" the SLSB is not found.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the arquillian-issues mailing list