Hello Florian, thanks for your answer,
> WSServlet does not register new servlets. It routes all requests through one > servlet. Internally it dispatches the requests to right implementation based > on the URL pattern. Yes, you are right. The code that is registering servlets is in com.sun.xml.ws.transport.http.servlet.WSServletContextListener private void registerWSServlet(List<ServletAdapter> adapters, ServletContext context) { if ( !ServletUtil.isServlet30Based()) return; Set<String> unregisteredUrlPatterns = new HashSet<String>(); try { Collection<? extends ServletRegistration> registrations = context.getServletRegistrations().values(); for (ServletAdapter adapter : adapters) { if (!existsServletForUrlPattern(adapter.urlPattern, registrations)) { unregisteredUrlPatterns.add(adapter.urlPattern); } } if (!unregisteredUrlPatterns.isEmpty()) { //register WSServlet Dynamically ServletRegistration.Dynamic registration = context.addServlet("Dynamic JAXWS Servlet", WSServlet.class); registration.addMapping(unregisteredUrlPatterns.toArray(new String[unregisteredUrlPatterns.size()])); registration.setAsyncSupported(true); } } catch (Exception e) { e.printStackTrace(); } } > The issue must be somewhere in your setup. Do you have your own CallContext > implementation or your own CallContext wrapper class? No, we don't. If I start the server in debug mode with a breakpoint in the method CmisWebServicesServlet.service()the execution only stops when I go with the browser to http://localhost:8080/repo/services if I connect with workbench, it uses http://localhost:8080/repo/services/RepositoryService and execution is not going throw CmisWebServicesServlet.service(). Regards. Jorge MARTIN CUERVO European Commission DG TRADE Unit A4 CHAR 02/077 B-1049 Brussels/Belgium +32 2 298 86 27 jorge.martin-cue...@ext.ec.europa.eu -----Original Message----- From: Florian Müller [mailto:f...@apache.org] Sent: Friday, July 11, 2014 11:16 AM To: MARTIN CUERVO Jorge (TRADE-EXT); dev Subject: Re: CallContext.getCmisVersion() is null for SOAP binding Hi Jorge, WSServlet does not register new servlets. It routes all requests through one servlet. Internally it dispatches the requests to right implementation based on the URL pattern. To make sure that there is no bug in the OpenCMIS code, I've added an extra check to the createContext() method and to the CallContextImpl class to see if the cmis version is always set. I ran the TCK and in no case the cmis version was null. The issue must be somewhere in your setup. Do you have your own CallContext implementation or your own CallContext wrapper class? - Florian > Hello everybody, > > We are upgrading our system to CMIS 1.1, but we have still service consumers > that uses CMIS 1.0. > I need to know the version of the client binding, and checking the code, the 4 > servlets declared in web.xml has the version as a parameter. > > The ATOM servlet is getting the parameter properly and saving in the request > scope, but the SOAP servlet that extends WSServlet class is not working like > it should be. > Overwriting the service() method is not enough because the implementation of > WSServlet is reading the file sun-jaxws.xml and registering on-the-fly new > servlets with more concrete URL patterns. > > For example: > > Class > > URL pattern > > > > CmisWebServicesServlet > > /services/* > > > > Dynamic from WSServlet > > /services/RepositoryService > > > > > The code of the class CmisWebServicesServlet.service() [...] > request.setAttribute(CMIS_VERSION, cmisVersion); [...] > Is never executed and when the AbstractService.createContext() never reads the > version. > [...] CmisVersion cmisVersion = (CmisVersion) > request.getAttribute(CmisWebServicesServlet.CMIS_VERSION); [...] > > I thought to create a customized listener to replace > com.sun.xml.ws.transport.http.servlet.WSServletContextListener, > but this class is final. > > any other suggestion? > > Regards. > > Jorge MARTIN CUERVO > [cid:image001.gif@01CCF6D0.4613B970] > European Commission > DG TRADE > Unit A4 > CHAR 02/077 > B-1049 Brussels/Belgium > +32 2 298 86 27 > jorge.martin-cue...@ext.ec.europa.eu<mailto:jorge.martin-cue...@ext.ec.europa.eu> >