Java 带球衣的JSONP

Java 带球衣的JSONP,java,json,jersey,Java,Json,Jersey,我试图从对象获取JSON,但遇到异常: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class Controllers.MyJax, genericType=class Controllers.MyJax. 我不知道为什么它不起作用。 我的代码与中的代码类似

我试图从对象获取JSON,但遇到异常:

org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class Controllers.MyJax, genericType=class Controllers.MyJax.
我不知道为什么它不起作用。 我的代码与中的代码类似

我填写了所有三个条件:

  • 资源方法应该返回包装好的JSON,需要使用@JSONP注释进行注释
  • 需要注册MessageBodyWriter for application/json媒体类型,它也接受资源方法的返回类型 (参见本章JSON部分)。 (通过注解@products)
  • 用户的请求必须包含定义了一种JavaScript媒体类型的Accept头(见下文)
  • 我试过这样做:

    @Produces("application/json")
    

    我的代码:

    @GET
    @Path("new")
    @JSONP
    @Produces("application/json")
    public MyJax ewUser() {
    
        return new MyJax("jsonp");
    
    }
    
    以及:

    问题解决了

    只需将其添加到pom.xml

    @GET
    @Path("new")
    @JSONP
    @Produces("application/json")
    public MyJax ewUser() {
    
        return new MyJax("jsonp");
    
    }
    
    package Controllers;
    
    import javax.xml.bind.annotation.XmlRootElement;
    
    @XmlRootElement
    public class MyJax {
    
        private String value;
    
        public MyJax() {}
    
        public MyJax(final String value) {
            this.value = value;
        }
    
        public String getValue() {
            return value;
        }
    
        public void setValue(final String value) {
            this.value = value;
        }
    }