Hi all,

Problem
======
I'm having trouble at server startup in a WSDL first server.
The server has a WSDL plus a few external XSDs.
Generation of classes works OK and the server started several times without
pb.

At startup Reflection complains about MOXy:

java.lang.NoSuchMethodException:
org.eclipse.persistence.jaxb.JAXBContext.getBeanInfo

(complete trace below).

Background Info:
=============

Each operation in the WSDL has two possible implementations
 - A real implementation for production
 - A mock implementation serving predefined responses determined by the
incoming request argument values.
Implementation classes are injected by Springs (separate
applicationContext.xml).

The predefined mock responses are stored in XML files.  To parse these XML
files I use EclipseLink MOXy (same annotated classes as the ones generated
by wsdl2java) because MOXy allows to describe the XML root node separately
(i.e. I don't have to fiddle with the annotations in the generated classes).

Under Debug:
===========
Putting all this under debug shows that CXF wraps eclipseLink MOXy JAXB
implementation with a JAXBContextProxy and then calls what it thinks is
this wrapper. Except that it just calls MOXy and reflections reports a
NoSuchMethodException for getBeanInfo (the sole method of JAXBContextProxy
interface).

Solution ???:
==========
All this is still very obscure for me. I guess I just need to understand
how to tell CXF to stick with its standard JAXB implementation and keep
MOXy for my mock implementation.
The problem is that the generated objects are in a package of their own
along with a jaxb.properties (pointing at
org.eclipse.persistence.jaxb.JAXBContextFactory - ie MOXy).
What's strange is that this used to work very well a few weeks ago.

Full Trace:
========
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'cbiowsbpService': Invocation of init method failed; nested
exception is javax.xml.ws.WebServiceException:
java.lang.reflect.UndeclaredThrowableException
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
    at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
    at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
    at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
    at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
    at
org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
    at
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
    at
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
    at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4797)
    at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
    at
org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
    at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
Caused by: javax.xml.ws.WebServiceException:
java.lang.reflect.UndeclaredThrowableException
    at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:369)
    at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:251)
    at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:537)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1608)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1549)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479)
    ... 26 more
Caused by: java.lang.reflect.UndeclaredThrowableException
    at com.sun.proxy.$Proxy38.getBeanInfo(Unknown Source)
    at org.apache.cxf.common.jaxb.JAXBUtils.getBeanInfo(JAXBUtils.java:1155)
    at
org.apache.cxf.jaxb.JAXBSchemaInitializer.getBeanInfo(JAXBSchemaInitializer.java:140)
    at
org.apache.cxf.jaxb.JAXBDataBinding.checkForJAXBAnnotations(JAXBDataBinding.java:439)
    at
org.apache.cxf.jaxb.JAXBDataBinding.justCheckForJAXBAnnotations(JAXBDataBinding.java:427)
    at
org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:352)
    at
org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86)
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:446)
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:548)
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:265)
    at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:205)
    at
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:102)
    at
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:159)
    at
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)
    at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:454)
    at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:334)
    ... 35 more
Caused by: java.lang.NoSuchMethodException:
org.eclipse.persistence.jaxb.JAXBContext.getBeanInfo(java.lang.Class)
    at java.lang.Class.getMethod(Class.java:1624)
    at
org.apache.cxf.common.util.ReflectionInvokationHandler.invoke(ReflectionInvokationHandler.java:52)
    ... 51 more
2013 11 08 13:17:34,615 ERROR [message id: none] [operation: none]     -
Context initialization failed ContextLoader        (
ContextLoader.java:319)
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'cbiowsbpService': Invocation of init method failed; nested
exception is javax.xml.ws.WebServiceException:
java.lang.reflect.UndeclaredThrowableException
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
    at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
    at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
    at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
    at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
    at
org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
    at
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
    at
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
    at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4797)
    at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
    at
org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
    at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
Caused by: javax.xml.ws.WebServiceException:
java.lang.reflect.UndeclaredThrowableException
    at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:369)
    at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:251)
    at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:537)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1608)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1549)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479)
    ... 26 more
Caused by: java.lang.reflect.UndeclaredThrowableException
    at com.sun.proxy.$Proxy38.getBeanInfo(Unknown Source)
    at org.apache.cxf.common.jaxb.JAXBUtils.getBeanInfo(JAXBUtils.java:1155)
    at
org.apache.cxf.jaxb.JAXBSchemaInitializer.getBeanInfo(JAXBSchemaInitializer.java:140)
    at
org.apache.cxf.jaxb.JAXBDataBinding.checkForJAXBAnnotations(JAXBDataBinding.java:439)
    at
org.apache.cxf.jaxb.JAXBDataBinding.justCheckForJAXBAnnotations(JAXBDataBinding.java:427)
    at
org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:352)
    at
org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86)
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:446)
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:548)
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:265)
    at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:205)
    at
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:102)
    at
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:159)
    at
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)
    at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:454)
    at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:334)
    ... 35 more
Caused by: java.lang.NoSuchMethodException:
org.eclipse.persistence.jaxb.JAXBContext.getBeanInfo(java.lang.Class)
    at java.lang.Class.getMethod(Class.java:1624)
    at
org.apache.cxf.common.util.ReflectionInvokationHandler.invoke(ReflectionInvokationHandler.java:52)
    ... 51 more

Reply via email to