我有 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();
}