@Provider
public class CORSFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext request,
ContainerResponseContext response) throws IOException {
// TODO: Allow only from *our* Web front
response.getHeaders().add("Access-Control-Allow-Origin", "*");
response.getHeaders().add("Access-Control-Allow-Headers",
"origin, content-type, accept,x-request-id, x-api-key, x-api-secret, authorization");
response.getHeaders().add("Access-Control-Allow-Credentials", "true");
response.getHeaders().add("Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE, OPTIONS, HEAD");
}
}
@Path("MyResource")
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public String MyResource(TestInput input) {
return input.getName();
}
public class TestInput {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
请指导我这个。提前致谢。
我认为您的ContainerRequestFilter没有任何问题。您需要做的只是更新Text Input类并在其上添加以下注释。
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class TestInput {
@XmlElement
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}