小编Nor*_*tar的帖子

使用REST根资源类作为接口,获取"无操作匹配请求"

问题:根资源类定义为具有所有注释的接口.CXFServlet无法在impl类上看到POST操作,尽管它是在接口上定义的.当所有注释都复制到impl类中时,它可以正常工作.

注意:仅在接口上定义GET才能正常工作,只有POST导致问题.

@Path("foo/")
public interface TestService {
    @Path("foo/{id}")
    @GET
    @Produces("text/plain")
    public String getIt(String id);

@Path("foo")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ElementClass(response = Bar.class)
public Response createStuff(@Context MessageContext context,
        Bar bar);
Run Code Online (Sandbox Code Playgroud)

}

@Features(features = "org.apache.cxf.feature.LoggingFeature")  
public class TestServiceImpl implements TestService {
    @Override
    public String getIt(String id) {
        return "Hi there!";
    }
@Override
public Response createStuff(@Context MessageContext context,
        Bar bar) {
    bar.set...
    bar.set...
    return Response.ok(bar).build();
Run Code Online (Sandbox Code Playgroud)

}

Beans.xml {

<jaxrs:server id="testService" address="/test">
        <jaxrs:serviceBeans>
            <ref bean="testservice1"/>
        </jaxrs:serviceBeans>
    </jaxrs:server>
    <bean id="testservice1" class="foo.bar.TestServiceImpl"/>
Run Code Online (Sandbox Code Playgroud)

}

在web.xml …

rest spring cxf m2eclipse tomcat7

3
推荐指数
1
解决办法
8934
查看次数

标签 统计

cxf ×1

m2eclipse ×1

rest ×1

spring ×1

tomcat7 ×1