Java Apache cxf jaxrs服务器ServiceConstructionException
您好,我已经编写了jaxrs apache cxf rest服务器。以前它工作正常。突然它没有启动,出现了这个错误Java Apache cxf jaxrs服务器ServiceConstructionException,java,spring,apache,jax-rs,cxf,Java,Spring,Apache,Jax Rs,Cxf,您好,我已经编写了jaxrs apache cxf rest服务器。以前它工作正常。突然它没有启动,出现了这个错误 Caused by: java.lang.ClassCastException: org.apache.cxf.jaxrs.model.wadl.WadlGenerator cannot be cast to javax.ws.rs.container.ContainerRequestFilter at org.apache.cxf.jaxrs.provider.Serve
Caused by: java.lang.ClassCastException: org.apache.cxf.jaxrs.model.wadl.WadlGenerator cannot be cast to javax.ws.rs.container.ContainerRequestFilter
at org.apache.cxf.jaxrs.provider.ServerProviderFactory.createWadlGenerator(ServerProviderFactory.java:104)
at org.apache.cxf.jaxrs.provider.ServerProviderFactory.<init>(ServerProviderFactory.java:95)
at org.apache.cxf.jaxrs.provider.ServerProviderFactory.initBaseFactory(ServerProviderFactory.java:132)
at org.apache.cxf.jaxrs.provider.ServerProviderFactory.createInstance(ServerProviderFactory.java:116)
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.setupFactory(JAXRSServerFactoryBean.java:234)
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:182)
原因:java.lang.ClassCastException:org.apache.cxf.jaxrs.model.wadl.WadlGenerator无法强制转换为javax.ws.rs.container.ContainerRequestFilter
位于org.apache.cxf.jaxrs.provider.ServerProviderFactory.createWadlGenerator(ServerProviderFactory.java:104)
位于org.apache.cxf.jaxrs.provider.ServerProviderFactory。(ServerProviderFactory.java:95)
位于org.apache.cxf.jaxrs.provider.ServerProviderFactory.initBaseFactory(ServerProviderFactory.java:132)
位于org.apache.cxf.jaxrs.provider.ServerProviderFactory.createInstance(ServerProviderFactory.java:116)
位于org.apache.cxf.jaxrs.jaxrserverfactorybean.setupFactory(jaxrserverfactorybean.java:234)
位于org.apache.cxf.jaxrs.jaxrserverfactorybean.create(jaxrserverfactorybean.java:182)
这是我的spring配置
<jaxrs:server name="server" address="${url}">
<jaxrs:serviceBeans>
<ref bean="serverApi"/>
<ref bean="swaggerResourceJSON"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref bean="jacksonProvider"/>
<ref bean="resourceWriter"/>
<ref bean="apiWriter"/>
<ref bean="corsFilter"/>
</jaxrs:providers>
</jaxrs:server>
有人知道问题出在哪里吗???在我的例子中,我在尝试测试CXF JAX_RX API时遇到了这个问题。我在测试环境中尝试创建服务器时遇到了这个问题。我尝试了几种不同的方法 这个游戏让我想起了ClassCastException:
JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
sf.setTransportId(LocalTransportFactory.TRANSPORT_ID);
sf.setAddress("api/address");
sf.setResourceClasses(OurJaxResource.class);
server = sf.create();
正如这一点:
JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
sf.setResourceClasses(OurJaxResource.class);
List<Object> providers = new ArrayList<Object>();
sf.setProviders(providers);
sf.setResourceProvider(OurJaxResource.class, new SingletonResourceProvider(new OurJaxResource(), true));
sf.setAddress(ENDPOINT_ADDRESS);
server = sf.create();
不确定您的具体情况,但希望这至少能让您朝着正确的方向前进。在我的例子中,我在尝试测试CXF JAX_RX API时遇到了这个问题。我在测试环境中尝试创建服务器时遇到了这个问题。我尝试了几种不同的方法 这个游戏让我想起了ClassCastException:
JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
sf.setTransportId(LocalTransportFactory.TRANSPORT_ID);
sf.setAddress("api/address");
sf.setResourceClasses(OurJaxResource.class);
server = sf.create();
正如这一点:
JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
sf.setResourceClasses(OurJaxResource.class);
List<Object> providers = new ArrayList<Object>();
sf.setProviders(providers);
sf.setResourceProvider(OurJaxResource.class, new SingletonResourceProvider(new OurJaxResource(), true));
sf.setAddress(ENDPOINT_ADDRESS);
server = sf.create();
不确定您的具体情况,但希望这至少能让您朝着正确的方向前进。在我的例子中,这是一个cxf依赖项不匹配的问题。cxf-spring-boot-starter-jaxrs 3.2.2与我为jsonProvider-rs所需的cxf bundle jaxrs 2.7.18不兼容。我能够通过将cxf bundle jaxrs替换为它来解决问题cxf rt rs扩展提供程序3.2.2在我的例子中,这是一个cxf依赖项不匹配。cxf-spring-boot-starter-jaxrs 3.2.2与我为jsonProvider-rs所需的cxf捆绑包jaxrs 2.7.18不兼容。我能够通过用cxf rt rs扩展提供程序3.2.2替换cxf捆绑包jaxrs it来解决这个问题,但我还没有答案我现在也遇到同样的问题。如果我找到答案,我会把它贴在这里。我还没有答案,但我现在也遇到了同样的问题。如果我找到答案,我会把它贴在这里。