My client is a SWT client and the server expose stateless session beans as facade.
i want to consult with you about handling excpetions:
1.Commit is called after the facade method was ended, so in case that the commit was failed due to database integrity the facade will not catch this excpetion and this excepytion will be thrown to the client without the ability to handle this exception? how do you solve this issue in your facades?
2.do you think that in the facade i should catch all exception and call to roleback in case of exception. a good reason for this is that the client can get a ClassNotFoundException in case that the Exception class in not in is classpath
Avihai, I think the code that handles the commit should handle the rollback. Does the transaction cross multiple session bean calls? If not, the database has some tables/data locked for longer than necessary.
You can define your own checked exception and put it in your method signature. That would guarantee the client has it in the classpath.
You stateless session bean should throw a RemoteException which you could catch on the SWT side just to display a user friendly exception.
If you want to handle the error on the server side just create a new method that actually has all the business logic and encapsulate it with your current business method. You should be able to catch Exceptions on your EJB later and send some user-friendly message to the client.