!--a11y-->
Catching the Access Control Error 
Access to each of the EJB methods is now protected with a security role. Therefore, if a user who does not have the proper authorizations attempts to access the EJB methods, he or she will receive an error message.
However, the quick car rental servlet is currently designed to catch the QuickCarRentalException only, which is thrown by the EJB methods for various error conditions, while the access control error produced by the authorization check is thrown by the Web container. Therefore, you have to adjust the error control handling in the servlet to handle the error accordingly.
|
|
The quick car rental application’s Web client project, J2EE_QuickCarRentalWeb, is displayed in the J2EE Explorer. |
...
1. Expand J2EE_QuickCarRentalWeb ® source ® com ® sap ® engine ® examples ® servlets ® quickcarrental.
2. Open the QuickReservationServlet.java file with a double-click.
3. Insert a catch (Exception e) instruction block to each of the methods viewAllBookings(), saveAction(), and cancelAction(). See the code example below.

try { ... } catch (QuickCarRentalException e) { session.setAttribute(Constants.CLIENT_MESSAGE,e.getMessage()); } catch (Exception e) { session.setAttribute( Constants.CLIENT_MESSAGE,e.getMessage()); } |
4. Save the files.
This instruction will catch the error messages returned from the Web container if the user cannot access the EJB methods.
The following examples show the exception handling for each of the methods method.
Method viewAllBookings()
private void viewAllBookings( |
Method saveAction()
private void saveAction( HttpServletRequest request, QuickOrderProcessorLocal order) { HttpSession session = request.getSession(true); try { java.lang.String dateFrom = request.getParameter("pickupDate"); java.lang.String dateTo = request.getParameter("dropoffDate"); String vehicleTypeId = request.getParameter("vehicleTypeId");
String pickupLocation = request.getParameter("pickupLocation"); String dropoffLocation = request.getParameter("dropoffLocation"); order.saveBooking(vehicleTypeId,dateFrom, dateTo, pickupLocation, dropoffLocation); } catch (QuickCarRentalException e) { session.setAttribute(Constants.CLIENT_MESSAGE,e.getMessage()); } catch (Exception e) { session.setAttribute( Constants.CLIENT_MESSAGE,e.getMessage()); } } |
Method cancelAction()
private void cancelAction( |
Rebuilding and Deploying the Application