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