After some debugging in CXF, it looks like in the method: org.apache.cxf.databinding.AbstractDataBinding.addSchemaDocument(), on line 98, d.getDocumentElement().getNamespaceURI() returns a null pointer.
Does anyone know why that might be? No other logs shed any light on why the servlet is going down. tia, rouble On Sat, Dec 3, 2011 at 3:24 PM, rouble <[email protected]> wrote: > CXF Gurus, > > I am running into an intermittent issue with a CXF web service. The > web service impl bean gets created and its @PostConstruct get called. > Everything seems to run fine, and then with no CXF logs, everything > starts to get torn down. The first log I see says, "Destroying > singletons" and then the @Predestroys get called. And then I see, > "Invalid schema document passed to > AbstractDataBinding.addSchemaDocument, not in W3C schema namespace". > This doesn't make sense because the service successfully started > previously on the same box in the same web container (Tomcat 6.0.29). > > The logs are as follows: > <No logs before this seem to suggest why the service is being taken down> > > 2011-12-03 14:44:32,822 INFO > [ContainerBackgroundProcessor[StandardEngine[Catalina]]] Destroying > singletons in > org.springframework.beans.factory.support.DefaultListableBeanFactory@173a03d: > defining beans > [template,cxf,org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,myWebServiceImpl_v2,myWebService_v2]; > > 2011-12-03 14:44:32,868 WARN > [ContainerBackgroundProcessor[StandardEngine[Catalina]]] Invocation of > destroy method 'shutdown' failed on bean with name 'cxf': > org.springframework.beans.factory.BeanCreationNotAllowedException: > Error creating bean with name 'template': Singleton bean creation not > allowed while the singletons of this factory are in destruction (Do > not request a bean from a BeanFactory in a destroy method > implementation!) > > 2011-12-03 14:44:32,868 ERROR > [ContainerBackgroundProcessor[StandardEngine[Catalina]]] Context > initialization failed > org.springframework.beans.factory.BeanCreationException: Error > creating bean with name 'myWebService_v2': Invocation of init method > failed; nested exception is javax.xml.ws.WebServiceException: > java.lang.RuntimeException: Invalid schema document passed to > AbstractDataBinding.addSchemaDocument, not in W3C schema namespace > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) > at > org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) > at > org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) > Caused by: javax.xml.ws.WebServiceException: > java.lang.RuntimeException: Invalid schema document passed to > AbstractDataBinding.addSchemaDocument, not in W3C schema namespace > at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:350) > at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:239) > at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:509) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$7.run(AbstractAutowireCapableBeanFactory.java:1531) > at java.security.AccessController.doPrivileged(Native Method) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1529) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) > Caused by: java.lang.RuntimeException: Invalid schema document passed > to AbstractDataBinding.addSchemaDocument, not in W3C schema namespace > at > org.apache.cxf.databinding.AbstractDataBinding.addSchemaDocument(AbstractDataBinding.java:98) > at > org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:344) > at > org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86) > at > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:438) > at > org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:682) > at > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:501) > at > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:241) > at > org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:202) > at > org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101) > at > org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:157) > at > org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:202) > at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:433) > at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:322) > > The issue is intermittent, so sometimes restarting tomcat fixes the > issue. But now we have one box where the issue happens every time. > > tia, > rouble
