my dog learned polymorphism*
The moose likes Web Services Certification (SCDJWS/OCEJWSD) and the fly likes JAX-RPC EJB End points doubt in xyzws Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Certification » Web Services Certification (SCDJWS/OCEJWSD)
Bookmark "JAX-RPC EJB End points doubt in xyzws" Watch "JAX-RPC EJB End points doubt in xyzws" New topic
Author

JAX-RPC EJB End points doubt in xyzws

Divya Gehlot
Ranch Hand

Joined: Sep 10, 2006
Posts: 243
Hi,
I was going through xyzws notes and got some controversial statement




please clarify .


SCJP1.5(81%), SCDJWS(94%), next mission SCEA (but need to wait or that)
sajan sachin
Greenhorn

Joined: Feb 20, 2008
Posts: 18
Divya,

The endpoint interface must throw remote exception,
but the implementation for that endpoint interface should not throw remote exception,because remote exception is something which is thrown by the server and not by the implementation class,since the implementation class resides in the server we should not throw remote exception from our implementation class only the server throws it.But in the endpoint interface this is not the case,think like ,the client will call only methods in the endpoint interface and the client should be aware of the remote exception,that is why we need to throw remote exception from the endpoint interface.

Thanks,
Sajan C
Peer Reynders
Bartender

Joined: Aug 19, 2005
Posts: 2922
    
    5
I think you mean "contradictory" not "controversial".

And the statements aren't contradictory - they are in fact complimentary.

The endpoint interface is a remote interface as seen by the client and therefore losing the remote connection is always a possibility. If the connection is lost or cannot be created the client's application server throws a subclass of java.rmi.RemoteException. Note this exception isn't coming from the implementing bean.

The implementing bean on the other hand "lives" on the application server that is running the service (not the client's application server) and therefore doesn't know about any of the connection problems that the client may be having. Throwing of java.rmi.RemoteExceptions is entirely the responsibility of the client's application server. The bean is only allowed to throw "application exceptions" (which show up in the WSDL as SOAP Faults) which cannot derive from java.rmi.RemoteExceptions.


Basically the rules state that java.rmi.RemoteException (or a subclass thereof) cannot be used to represent an "application exception" but must always be treated as a "system exception".

Enterprise JavaBeans, 3rd Edition: 14.6.1. Application Exceptions Versus System Exceptions

An application exception is any exception that does not extend java.lang.RuntimeException or java.rmi.RemoteException. System exceptions are java.lang.RuntimeException and its subtypes, including EJBException.

An application exception must never extend either the RuntimeException, the RemoteException, or one of their subtypes.
Divya Gehlot
Ranch Hand

Joined: Sep 10, 2006
Posts: 243
Hi Peer,
Thanks
I understood
 
GeeCON Prague 2014
 
subject: JAX-RPC EJB End points doubt in xyzws