EJBs are never accessed by non-J2EE clients right? For example, if I tried to lookup a bean that is outside the scope of a container, for example from an another JVM, I will not reach it.
So isnt exposing it as a webservice, bypass this whole concept. I would simply be able to find a WSDL location and call methods on the EJB. (ofcourse I could put security on to the methods and let only authenticated clients access it). But exposing a EJB to a non-J2EE client is a change in design. Not that I have anything against it, just trying to clarify it.
EJBs are never accessed by non-J2EE clients right?
Wrong! J2SE applications could access EJBs directly. In EJB, there are two kind of interfaces REMOTE and LOCAL. REMOTE interfaces are for those clients calling the beans from other VM. If the clients and the beans are in the same VM, LOCAL interface is used for performance.