Hi Jorge, Now I know what's wrong. You are using a different JAX-WS implementation. OpenCMIS is only supported on the JAX-WS RI 2.1.7. You are probably using a 2.2.x version.
- Florian > 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> > >