cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dmitry Murashenkov (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CXF-7203) Multiple servlet mappings for CXFNonSpringServlet
Date Tue, 03 Jan 2017 12:29:58 GMT

     [ https://issues.apache.org/jira/browse/CXF-7203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Dmitry Murashenkov updated CXF-7203:
------------------------------------
    Description: 
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().


Also having single CXFServlet mapped several times in Jetty causes NPE in CXFNonSpringServlet.destroy()
since it is called multiple times and destinationFactory is set to null after first invocation.

  was:
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().



> 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().

> Also having single CXFServlet mapped several times in Jetty causes NPE in CXFNonSpringServlet.destroy()
since it is called multiple times and destinationFactory is set to null after first invocation.



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

Mime
View raw message