You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Dmitry Murashenkov (JIRA)" <ji...@apache.org> on 2017/01/03 11:44:58 UTC

[jira] [Created] (CXF-7203) Multiple servlet mappings for CXFNonSpringServlet

Dmitry Murashenkov created CXF-7203:
---------------------------------------

             Summary: Multiple servlet mappings for CXFNonSpringServlet
                 Key: CXF-7203
                 URL: https://issues.apache.org/jira/browse/CXF-7203
             Project: CXF
          Issue Type: Improvement
            Reporter: Dmitry Murashenkov


I want to achieve following set of calls to ease configuration management:

Endpoint.publish("/user/soap/userService", userService);
Endpoint.publish("/admin/soap/adminService", adminService);

ServletContextHandler userContext = new ServletContextHandler();
userContext.setContextPath("/user");
userContext.addServlet(new ServletHolder(cxf), "/soap/*");

ServletContextHandler adminContext = new ServletContextHandler();
adminContext.setContextPath("/admin");
adminContext.addServlet(new ServletHolder(cxf), "/soap/*");

Currently it is not possible since ServletController.invoke() takes request.getPathInfo() and that would be "/userService". So CXFServlet can only be mapped to root context, which may be impossible if I have other servlets in "/user" context and Jetty would first call more specific user context for that URI.

Current workaround is to extend CXFNonSpringServlet and rewrite pathInfo in the invoke(). 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)