If you are deploying the application on a servlet 3.x container, then the configuration entries are much simpler. In this case, you just need to mention the servlet name and servlet mapping, as follows (for each application subclass bundled in the application). The runtime will automatically add the servlet class and assign it to the name that you'd specified:
<web-app ... <servlet> <!-- Set this element to the fully qualified name of the class that extends javax.ws.rs.core.Application --> <servlet-name> com.packtpub.rest.ch4.service.HRApplication </servlet-name> <!-- servlet-class and init-param are not needed --> </servlet> <servlet-mapping> <servlet-name> com.packtpub.rest.ch4.service.HRApplication </servlet-name> <url-pattern>/webresources/*</url-pattern> </servlet-mapping> </web-app>