从6.1开始使用Fuse 6.2。这是在6.1上部署的,我似乎无法将其部署到新的Fuse 6.2中。当我部署到Fuse环境时,这个简单的Rest服务一直得到以下错误。
如有任何意见,不胜感激。
这个问题建议从Fuse中删除javax.ws.rs/javax.ws.rs-api/2.0.1包文件。bundle启动干净,没有错误,但是REST服务由于某些原因无法访问。
这个链接可能适用于:https://issues.apache.org/jira/browse/cxf - 5654
我需要调查特性Swagger,因为它是自动启动的。
错误:
Caused by: org.apache.cxf.service.factory.ServiceConstructionException: No resource classes found
at org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.checkResources(AbstractJAXRSFactoryBean.java:317)
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:159)
... 29 more
代码:
@Path("/configservice")
public class ConfigurationServiceImpl
{
public ConfigurationServiceImpl()
{
}
@GET
@Path("/event0")
@Consumes({MediaType.APPLICATION_XML})
@Produces({MediaType.APPLICATION_XML})
public RestConcreteResult process()
{
logger.info("************************************** process has been processed");
RestConcreteResult result = new RestConcreteResult("test ::: ");
return result;
}
}
Pom.xml
...
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
</dependency>
</dependencies>
我得到了同样的错误。这是由于依赖于旧版本的javax.ws.rs:
javax.ws.rs;version="[1.1,2)",
javax.ws.rs.core;version="[1.1,2)",
https://issues.apache.org/jira/browse/CXF-5654说明cxf3。X需要Java API 2.0。所以我明确地添加了
javax.ws.rs;version="[2.0,3)",
javax.ws.rs.core;version="[2.0,3)",
在Maven pom.xml中:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>Create OSGi bundle</id>
<goals>
<goal>bundle</goal>
</goals>
<configuration>
<instructions>
<Import-Package>
META-INF.cxf,
org.apache.cxf.bus.spring,
javax.ws.rs;version="[2.0,3)",
javax.ws.rs.core;version="[2.0,3)",
*
</Import-Package>
</instructions>
</configuration>
</execution>
</executions>
</plugin>