If think you're right - the bean didn't get added to JNDI on my machine. I've added a local interface and a test to verfiy the sample bean works through the EJB interface too.
Hope that's ok. Jon On Tue, Apr 14, 2009 at 4:52 PM, Laird Nelson <[email protected]> wrote: > 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 >
