升级到 cxf-rt-frontend-jaxrs-3.1.13 后,WadlGenerator 无法转换为 javax.ws.rs.container.ContainerRequestFilter
WadlGenerator cannot be cast to javax.ws.rs.container.ContainerRequestFilter after upgrading to cxf-rt-frontend-jaxrs-3.1.13
升级到 cxf-rt-frontend-jaxrs v3.1.13 时出现以下问题。
我正在使用 javax.ws.rs v2.0.1,Spring v4.3.10.
org.springframework.beans.factory.BeanCreationException:创建名称为 'xxxxx' 的 bean 时出错:调用 init 方法失败;嵌套异常是 org.apache.cxf.service.factory.ServiceConstructionException
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在 org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443) ~[spring-web-4.3.10.RELEASE.jar:4.1.6.RELEASE]
在 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325) ~[spring-web-4.3.10.RELEASE.jar:4.1.6.RELEASE]
在 org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) [spring-web-4.3.10.RELEASE.jar:4.1.6.RELEASE]
在 org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4745) [catalina.jar:na]
在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207) [catalina.jar:na]
在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:na]
在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) [catalina.jar:na]
在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) [catalina.jar:na]
在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) [catalina.jar:na]
在 org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:988) [catalina.jar:8.5.23-dev]
在 org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1860) [catalina.jar:8.5.23-dev]
在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_131]
在 java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131]
在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131]
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131]
在 java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]
原因:org.apache.cxf.service.factory.ServiceConstructionException:空
在 org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:219) ~[cxf-rt-frontend-jaxrs-3.1.13.jar:3.1.13]
在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[na:1.8.0_131]
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_131]
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131]
在 java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131]
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1758) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1695) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
...省略了 25 个公共框架
原因:java.lang.ClassCastException:org.apache.cxf.jaxrs.model.wadl.WadlGenerator 无法转换为 javax.ws.rs.container.ContainerRequestFilter
在 org.apache.cxf.jaxrs.provider.ServerProviderFactory.createWadlGenerator(ServerProviderFactory.java:108) ~[cxf-rt-frontend-jaxrs-3.1.13.jar:3.1.13]
在 org.apache.cxf.jaxrs.provider.ServerProviderFactory.(ServerProviderFactory.java:100) ~[cxf-rt-frontend-jaxrs-3.1.13.jar:3.1.13]
在 org.apache.cxf.jaxrs.provider.ServerProviderFactory.createInstance(ServerProviderFactory.java:120) ~[cxf-rt-frontend-jaxrs-3.1.13.jar:3.1.13]
在 org.apache.cxf.jaxrs.JAXRSServerFactoryBean.setupFactory(JAXRSServerFactoryBean.java:234) ~[cxf-rt-frontend-jaxrs-3.1.13.jar:3.1.13]
在 org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:182) ~[cxf-rt-frontend-jaxrs-3.1.13.jar:3.1.13]
...省略了 32 个常见帧
我们使用了 maven 树并确定有另一个 jar 正在加载不同的版本,并且这是随机行为发生的,因为它取决于 class 加载程序首先加载的内容。无论如何,修复只是从依赖项中排除该版本。
升级到 cxf-rt-frontend-jaxrs v3.1.13 时出现以下问题。 我正在使用 javax.ws.rs v2.0.1,Spring v4.3.10.
org.springframework.beans.factory.BeanCreationException:创建名称为 'xxxxx' 的 bean 时出错:调用 init 方法失败;嵌套异常是 org.apache.cxf.service.factory.ServiceConstructionException 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443) ~[spring-web-4.3.10.RELEASE.jar:4.1.6.RELEASE] 在 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325) ~[spring-web-4.3.10.RELEASE.jar:4.1.6.RELEASE] 在 org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) [spring-web-4.3.10.RELEASE.jar:4.1.6.RELEASE] 在 org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4745) [catalina.jar:na] 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207) [catalina.jar:na] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:na] 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) [catalina.jar:na] 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) [catalina.jar:na] 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) [catalina.jar:na] 在 org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:988) [catalina.jar:8.5.23-dev] 在 org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1860) [catalina.jar:8.5.23-dev] 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_131] 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131] 在 java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] 原因:org.apache.cxf.service.factory.ServiceConstructionException:空 在 org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:219) ~[cxf-rt-frontend-jaxrs-3.1.13.jar:3.1.13] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[na:1.8.0_131] 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_131] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131] 在 java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1758) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1695) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] ...省略了 25 个公共框架 原因:java.lang.ClassCastException:org.apache.cxf.jaxrs.model.wadl.WadlGenerator 无法转换为 javax.ws.rs.container.ContainerRequestFilter 在 org.apache.cxf.jaxrs.provider.ServerProviderFactory.createWadlGenerator(ServerProviderFactory.java:108) ~[cxf-rt-frontend-jaxrs-3.1.13.jar:3.1.13] 在 org.apache.cxf.jaxrs.provider.ServerProviderFactory.(ServerProviderFactory.java:100) ~[cxf-rt-frontend-jaxrs-3.1.13.jar:3.1.13] 在 org.apache.cxf.jaxrs.provider.ServerProviderFactory.createInstance(ServerProviderFactory.java:120) ~[cxf-rt-frontend-jaxrs-3.1.13.jar:3.1.13] 在 org.apache.cxf.jaxrs.JAXRSServerFactoryBean.setupFactory(JAXRSServerFactoryBean.java:234) ~[cxf-rt-frontend-jaxrs-3.1.13.jar:3.1.13] 在 org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:182) ~[cxf-rt-frontend-jaxrs-3.1.13.jar:3.1.13] ...省略了 32 个常见帧
我们使用了 maven 树并确定有另一个 jar 正在加载不同的版本,并且这是随机行为发生的,因为它取决于 class 加载程序首先加载的内容。无论如何,修复只是从依赖项中排除该版本。