Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache cxf jaxrs服务器ServiceConstructionException_Java_Spring_Apache_Jax Rs_Cxf - Fatal编程技术网

Java Apache cxf jaxrs服务器ServiceConstructionException

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

您好,我已经编写了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.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来解决这个问题,但我还没有答案我现在也遇到同样的问题。如果我找到答案,我会把它贴在这里。我还没有答案,但我现在也遇到了同样的问题。如果我找到答案,我会把它贴在这里。