jersey post 400:Bad Request简单注册

时间:2016-02-13 17:44:17

标签: java rest jpa jersey ejb


我已经花了很多时间来解决使用休息的简单问题,但是当我在邮递员或高级休息时测试时,我无法发布数据,这是我的休息资源

if(movies==null) 

这是我的jpa

 if(movies.size()==0)

这是我的实体

@Path("/auth")
@Stateless
public class RestWs {

    @EJB 
    private UserService userService;

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public void registerRest(Users u){
        Users users = new Users();
        users.setUsername(u.getUsername());
        users.setEmail(u.getEmail());
        users.setPassword(u.getUsername());
        userService.registerService(u);
    }

}

我不知道为什么我无法为注册用户发布数据,我还需要解析其他内容或....,请帮帮我,谢谢

1 个答案:

答案 0 :(得分:0)

我需要添加交叉过滤器,所有工作都很棒

@Provider
public class CORSFilter implements ContainerResponseFilter{

    @Override
    public void filter(ContainerRequestContext requestContext, ContainerResponseContext response) throws IOException {
        response.getHeaders().add("Access-Control-Allow-Origin", "*");
        response.getHeaders().add("Access-Control-Allow-Headers",
                      "origin, content-type, accept, authorization");
        response.getHeaders().add("Access-Control-Allow-Credentials", "true");
        response.getHeaders().add("Access-Control-Allow-Methods",
                      "GET, POST, PUT, DELETE, OPTIONS, HEAD");
    }

}

并在web.xml中

<init-param>
          <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
          <param-value>com.ress.CORSFilter</param-value>
        </init-param>

这就是全部