找不到类型为public javax.ws.rs.core.Response的参数的注入源

时间:2016-04-30 16:40:27

标签: java web-services rest jax-rs

我有 JavaEE7应用程序,我只是创建rest api,我只使用纯javax.ws.rs api来创建api。

除POST之外,所有HTTP方法都能正常工作。

我在标题中收到错误:

找不到类型为public javax.ws.rs.core.Response的参数的注入源

是因为@FormParam来处理通过api创建它的incomming对象。我使用 swagger ,这是我的招摇配置:

@ApplicationPath("rest")
public class ApplicationConfig extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new java.util.HashSet<>();
        resources.add(com.wordnik.swagger.jaxrs.listing.ApiListingResource.class);
        resources.add(com.wordnik.swagger.jaxrs.listing.ApiDeclarationProvider.class);
        resources.add(com.wordnik.swagger.jaxrs.listing.ApiListingResourceJSON.class);
        resources.add(com.wordnik.swagger.jaxrs.listing.ResourceListingProvider.class);
        addRestResourceClasses(resources);
        return resources;
    }

    private void addRestResourceClasses(Set<Class<?>> resources) {
        //my api classes
    }

}

我发现我需要启用multipart,但我无法执行此操作,我将jersey-media-multipart库添加到我的项目并尝试添加

resources.add(MultiPartFeature.class);

进入上面指定的配置但不成功。

如果我添加这样的post方法,会显示致命错误,但不会全部起作用:

@POST
    @Path("/")
    public Response doPost(@FormParam("user") User user) {
        try {
            // do something
        } catch (Exception e) {
            return Response.serverError().build();
        }
        return Response.ok().build();
    }

0 个答案:

没有答案