当前位置: 首页 > 知识库问答 >
问题:

尝试返回XML时的jersey return 500

濮金鑫
2023-03-14

我对使用泽西2.29有问题。这是一个简单的例子。我设法返回纯文本,但如果我尝试返回XML,我会得到500个错误。

我的步骤:

<?xml version="1.0" encoding="UTF-8"?>
<!-- This web.xml file is not required when using Servlet 3.0 container,
     see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html -->
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>com.test.demorest</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/webapi/*</url-pattern>
    </servlet-mapping>
</web-app>

package com.test.demorest;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Alien {

    private String name;
    private int points;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getPoints() {
        return points;
    }
    public void setPoints(int points) {
        this.points = points;
    }

}

AlienResource.java

package com.test.demorest;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;


@Path("aliens")
public class AlienResource {

    @GET
    @Produces(MediaType.APPLICATION_XML)
    public Alien getAlien() {
        System.out.println("getAlien called...");
        Alien a1 = new Alien();
        a1.setName("Adam");
        a1.setPoints(23);

        return a1;
    }

}

共有1个答案

淳于知
2023-03-14

将此添加到pom.xml中的依赖项中

   <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0-b170201.1204</version>
    </dependency>

    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.3.0-b170127.1453</version>
    </dependency>
 类似资料:
  • 我有一个错误异常: INFOS:从类路径资源加载XML bean定义[ma/openbook/www/bean/perons.xml]线程“main”中的异常org.springframework.beans.factory.BeanDefitionStoreExc0019: IOExc0019从类路径资源解析XML文档[ma/openbook/www/bean/perons.xml];嵌套异常是

  • 我有一个返回< code>List的方法。现在我想知道如何正确放置< code>try/catch块。如果我将< code>return语句放在< code>try中,我会得到错误 并非所有代码路径都返回值 如果我放置在之后(就像我目前所做的那样),即使在之后,它也会返回。那么最好的方法应该是什么? 方法如下:

  • 当我试图返回带有类型化java的Uni时。util。在Quarkus的开发模式下,我得到一个ClassNotFound异常。我读过Quarkus在不同的配置文件中使用不同的类装入器,但我看不出我做了什么花哨的事情。 这是发信人 这是消费者 我想退货的豆子只是一个POJO 和错误信息 如果我运行dev概要文件或者运行打包的fast jar,我会得到相同的结果。 乐意接受任何能指引我正确方向的提示

  • 首先我知道这是一个重复的问题。但我已经搜索并尝试从谷歌上列出的stackoverflow到quora,但仍然无法解决Get方法仍然返回null的问题。 这是我的类登录模型。com包下的java。你好模型 这是我的登录视图。com包下的java。你好看法 我想从menuView调用我的用户名。com包下的java。你好登录成功后查看 根据我在loginModel中调用Get方法时的问题,messag

  • 我在Java中有一个与MySQL连接的多类项目,我可以与这个SQL数据库建立连接,但当我试图将它读入数组时,它得到的是废话,而不是所请求的信息。我做错了什么? 它在sql定义下面出现了一条弯曲的线条,说它们从来没有被读取过,但我就是不明白为什么会这样!它构建得很好,可以看到数据库中有行,但它返回以下内容: 显示“java2assignment3.dvd@5e0010bc”和“java2assign

  • 数字根是数字中所有数字的递归和。给定n,取n的位数之和。如果该值有两位数,则继续以这种方式递减,直到生成一个位数。这只适用于自然数。 正如您在上面看到的,我已经尝试通过测试“如果输出的值不等于1,则返回”的if fe语句返回个位数。但是,这个返回不起作用,而是从我放在下面以清除返回错误的返回中返回0。对这个问题有什么帮助吗?谢谢