相关疑难解决方法(0)

找不到Java类的消息正文编写器

我是新手使用JAX-RS并编写了一个输出json对象的示例应用程序.但我得到一个例外.这是我的代码:

@Path("/hello")
public class HelloWorldService {

    @GET
    @Path("/query/{artist_id}")
    @Produces("application/json")
    public Data getMsg(@PathParam("artist_id") int artist_id,
                            @QueryParam("from") int from,
                            @QueryParam("to") int to) {
        Data d=new Data();
        d.setName("Mateen");
        d.setRoll(77);
        return d;

    }
Run Code Online (Sandbox Code Playgroud)

}

我的数据只是一个POJO类:

@XmlRootElement
public class Data {
    private int roll;
    private String name;
    public int getRoll() {
        return roll;
    }
    public void setRoll(int roll) {
        this.roll = roll;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:

javax.ws.rs.WebApplicationException: 
    com.sun.jersey.api.MessageException: 
    A message …
Run Code Online (Sandbox Code Playgroud)

java rest jax-rs

55
推荐指数
4
解决办法
8万
查看次数

Jersey:找不到Java类和MIME mediatype应用程序/ json的消息正文编写器

在试图弄清楚我的问题后,我终于决定问你如何解决我的问题.我见过不同的人有同样的问题,我尝试了他们所建议做的所有事情,但没有任何帮助我的问题.所以基本上我有一个使用Jersey构建的RESTful服务.对于我的客户端,我想以JSON格式返回一个对象.我阅读了不同的教程,并认为使用jersey-json-1.8库是有意义的.我说的一切我的项目像往常一样,并试图运行它,但我打电话给服务每次(通过GET请求大气压)我收到HTTP错误代码500(内部服务器错误),我的服务器响应,没有邮件正文可以找到作家.如果我正在返回XML,它的工作正常,一切都很棒.我也试过复制jersey-json-1.8.jar到我的Tomcat lib文件夹,因为我必须使用我正在使用的mysql lib这样做,但它也没有帮助.如果你能帮我解决这个问题,我会很高兴的!如果您需要更多信息,请留下评论,我会尽可能快地提供它:)

我的项目设置是:3个不同的包1.我的RESTfulServices 2.我的Java工作,我处理SQL连接等.3.一个包,我存储我需要使用的所有模型,我想以JSON格式返回(在我的例子中为testdrive的路由)

Tomcat Webserver IDE:Eclipse我正在使用Maven

无论我试图返回对象的内容或方式,它都无法正常工作,我不断收到错误消息:

Mapped exception to response: 500 (Internal Server Error)
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class com.mykong.models.Teststrecke, and Java type class com.mykong.models.Teststrecke, and MIME media type application/json was not found
Run Code Online (Sandbox Code Playgroud)

编辑:这是我的JSON服务方法

@Path("/hellojson")
public class JSONService {


    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public ArrayList<Route> getJSONMsg()  
    {

        Route ts = new Route();
        ts.setId(1);
        ts.setName("HelloWorld");


        Route ts2 = new Route();
        ts2.setId(2);
        ts2.setName("HelloWorld");


        ArrayList<Route> availRoutes = new ArrayList<Route>();
        availRoutes.add(ts);
        availRoutes.add(ts2);


        return availRoutes;


    }
}
Run Code Online (Sandbox Code Playgroud)

eclipse mime json message jersey

23
推荐指数
3
解决办法
5万
查看次数

找不到Java类的消息正文编写器...和MIME媒体类型text/html

我正在使用jms/atmosphere框架在两个应用程序之间进行通信.其中一个应用程序是主题的消息生成器,发送以下类型的自定义对象:

    @XmlRootElement
    public class A implements Serializable{
    public A(){}

    /* some private properties */

   }
Run Code Online (Sandbox Code Playgroud)

另一方面,不止一个消费者正在监听该主题并根据ID进行不同的订阅.

    @GET
    @Produces({MediaType.APPLICATION_JSON})
    public SuspendResponse<A> subscribe() {
    return new SuspendResponse.SuspendResponseBuilder<A>()
            .broadcaster(topic)
            .outputComments(true)
            .addListener(new EventsLogger()).build();
    } 
   @Override
public void incomingBroadcast() {
    try {
        String id = getID();
        if (id.startsWith("/*")) {
            id = "atmosphere";
        }

        logger.info("Looking up Connection Factory {}", FACTORY_NAME);
        Context ctx = new InitialContext();
        ConnectionFactory connectionFactory = (ConnectionFactory) ctx.lookup(FACTORY_NAME);

        logger.info("Looking up topic: {}", TOPIC_NAME);
        Topic topic = (Topic) ctx.lookup(TOPIC_NAME);

        connection = connectionFactory.createConnection();
        session = connection.createSession(false, …
Run Code Online (Sandbox Code Playgroud)

java json glassfish jersey atmosphere

15
推荐指数
2
解决办法
3万
查看次数

在maven构建的JAR中找不到Jersey消息体阅读器

我的应用程序使用REST(JAX-RS Jersey)接口.当我在Eclipse中运行它时,一切都很好.域对象是注释的,我没有使用XML文件进行REST映射.

现在我使用maven-assembly-plugin创建了一个独立的JAR,它将应用程序和所有依赖项打包在一个可执行的JAR文件中.这似乎也有效.

但是当我启动应用程序并从服务器请求一个对象时,Jersey抱怨说它无法找到一个消息正文阅读器:

com.sun.jersey.api.client.ClientHandlerException: A message body reader for Java type, class de.rybu.atuin.core.entity.User, and MIME media type, application/json, was not found
Run Code Online (Sandbox Code Playgroud)

任何想法为什么会这样?

编辑:我睡了一个晚上后,我发现它抱怨JSON ......但我只使用XML进行序列化.奇怪.

java rest jax-rs executable-jar maven-assembly-plugin

5
推荐指数
1
解决办法
2万
查看次数

如何使用JAXB使用Jersey 1.17.1生成JSON输出

本网站已经有了这个问题的正确答案.问题是问题是针对泽西岛1.6,泽西岛1.17.1的正确答案是埋在底部.我想我会为这个答案创建一个正确的问题,这样就可以更容易地为那些在这方面苦苦挣扎的人找到帮助(就像我一样).

rest jaxb jersey jackson jersey-1.0

2
推荐指数
1
解决办法
2378
查看次数