On Sat, Apr 11, 2009 at 2:00 PM, David Blevins <[email protected]>wrote:
> @Local doesn't work either for the same reasons as @Remote. OK. One last small-brained question. In the simple-webservice example that ships with OpenEJB 3.1, the interface (CalculatorWs) is annotated with @WebService (and nothing else), and the implementation (CalculatorImpl) is annotated *both *with @Stateless *and * @WebService, and implements CalculatorWs. The associated test passes ( CalculatorTest)--and it only tests the web service functionality, not the EJB functionality. It's my understanding that in EJB 3.0 if you don't explicitly mark any business interface as being either @Remote or @Local, it defaults to @Local, so if you did nothing other than mark the implementation class as @Stateless, you would be implicitly "marking" the interface as @Local. And *that* would be tantamount to "marking" the interface as both @Local and @WebService. >From these conversations, I would expect that if I were to add a test to CalculatorTest.java that attempted to locate the "CalculatorImplLocal" bean in JNDI, either that lookup would fail or an invocation on the resulting CalculatorWs interface would fail. Is this correct? If it *is* correct, why is the CalculatorImpl class in that example marked as @Stateless (in addition to @WebService), since I can't see any way (from our discussions) that any test written against the EJB interfaces could pass? Thanks, Laird
