4 Replies Latest reply on Oct 20, 2014 6:42 AM by Noel Mamoghli Díaz

    RESTEasy service and ExceptionMapper

    Artem Egorkine Newbie

      Dear SwitchYard community,


      I have a problem (yet again). I have a SwitchYard 1.1 application with multiple HTTP and REST services. I'm looking for a way to add custom error messages (in case of error 404, 500 and such). My services talk JSON and are expected to return a JSON reply no matter, what circumstances are.


      I would be content if I could just set the HTTP response body and status code myself in all circumstances and JBoss AS would just pass it to the client as-is. I fail completely at getting this kind of behavior from JBoss


      I know, with RESTEasy there are exception mappers that can be used, but I cannot seem to get my exception mappers registered.


      I have the following exception mapper:


      public class CustomExceptionMapper implements ExceptionMapper<Exception> {
          public Response toResponse(Exception e) {
              String body = "{}";
              return Response.serverError()

      and I have the following web.xml:


      <?xml version="1.0" encoding="UTF-8"?>
      <web-app xmlns="http://java.sun.com/xml/ns/javaee"  version="3.0"
               xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

      Strictly speaking, I shouldn't need to add any context params to the web.xml file as on JBoss AS the application should be scan for RESTEasy annotations automatically. That is not happening.


      I try to register the provider directly by supplying the "resteasy.providers" context-param and it is not being picked up either.


      In fact, I don't know why my web.xml is no used at all. I break at org.jboss.resteasy.server.servlet.ConfigurationBootstrap#createDeployment() and see that getParameter() calls dealing with context parameters above don't return anything. In fact both getParameterNames() and getInitParameterNames() return empty lists. Why? How? I have a WAR that has /WEB-INF/web.xml as described above. I know it is parsed because if the XML is malformed, deployment fails with errors.


      I have tried different things, but to no avail. Is there any hope for me?