[ 
https://issues.apache.org/jira/browse/OWB-871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13680243#comment-13680243
 ] 

Mark Struberg commented on OWB-871:
-----------------------------------

Hi Reini, Romain 

I'm not quite sure myself. My guess would be to read up on 'Business Methods' 
in the EJB spec.

In EJBs only public methods are Business Methods. And if there is an Interface 
(aside javax.ejb.* intefaces) only those methods are.

For pure CDI beans  all non-private methods are business methods. And there is 
no restriction for CDI beans on inject-methods and observer methods. 
Thus we would need to check if there is anything more explicit in the EJB spec 
which overrules this.
                
> WebbeansConfigurationException unless method is also declared in interface
> --------------------------------------------------------------------------
>
>                 Key: OWB-871
>                 URL: https://issues.apache.org/jira/browse/OWB-871
>             Project: OpenWebBeans
>          Issue Type: Bug
>          Components: Events
>    Affects Versions: 1.2.1
>            Reporter: Reinis Vicups
>         Attachments: observerininterface.zip
>
>
> In this scenario I receive WebbeansConfigurationException like this:
> SEVERE - CDI Beans module deployment failed
> org.apache.webbeans.exception.WebBeansConfigurationException: @Observes 
> public void 
> de.orbitx.observerininterface.BasicSchedulerWorkerManager.observerMethod(de.orbitx.observerininterface.SchedulerWorker)
>  neither in the ejb view of ejb BasicSchedulerWorkerManager nor static
>       at 
> org.apache.openejb.cdi.CdiPlugin.validateObserverMethods(CdiPlugin.java:423)
>       at 
> org.apache.openejb.cdi.CdiPlugin.defineSessionBean(CdiPlugin.java:368)
> This happens ONLY if following is true (see attached foobar project):
> - Bean (BasicSchedulerWorkerManager) implements interface 
> (SchedulerWorkerManager);
> - Bean is annotated as @javax.ejb.Singleton;
> - The observer method is not declared in the interface;
> If I remove @Singleton from BasicSchedulerWorkerManager, testcase passes.
> If I declare observerMethod in interface, testcase passes.
> Pay attention that Singleton is from javax.ejb (yes I need ejb singleton!)
> br
> reinis

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to