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

Spring Rest服务不能用于XML响应

夹谷晋
2023-03-14

我正在尝试创建spring restful webservice应用程序。我需要设计将返回json和XML的服务。当前,默认情况下,json作为响应返回,但我也希望返回xml。

aopalliance-1.0.jar

com.mysql.jdbc_5.1.5.jar

commons-logging-1.2.jar

Jackson-Core-2.4.4.JAR

Jackson-Core-ASL-1.9.0.jar

Jackson-DataBind-2.4.4.jar

JAXB-API-2.2.jar

jboss-logging-3.1.3.ga.jar

jboss-logging-annotations-1.2.0.beta1.jar

SLF4J.jar

spring-aop-4.0.0.release.jar

spring-aspects-4.0.0.release.jar

Spring-Expression-4.0.0.release.jar

spring-framework-bom-4.0.0.release.jar

Spring-Instrument-4.0.0.release.jar

spring-oxm-4.0.0.release.jar

spring-test-4.0.0.release.jar

Spring-tx-4.0.0.release.jar

@RestController
@RequestMapping("/rest")
public class DataRestController
{
    @RequestMapping(value = "/profile/{number}", method = 
     RequestMethod.GET)  
     public 
     List<CustomerProfile>getCustomerProfile(@PathVariable("number")   
     String number) 
     {

        return profileList;
     }
}
@XmlRootElement(name="profile")
@Entity
@Table(name = "profile")
public class Profile extends CommonBean
{
    @Column(name = "email")
    private String email;

    @Column(name = "mobile")
    private String mobile;

    @Column(name = "DOB")
    private Date dateOfBirth;


    @XmlElement
    public String getEmail()
    {
        return email;
    }

    public void setEmail(String email)
    {
       this.email = email;
    }

    public String getMobile()
    {
       return mobile;
    }

    public void setMobile(String mobile)
    {
      this.mobile = mobile;
    }

    public Date getDateOfBirth()
    {
      return dateOfBirth;
    }

    public void setDateOfBirth(Date dateOfBirth)
    {
       this.dateOfBirth = dateOfBirth;
    }
}

控制器-servlet.xml

<beans>

<context:component-scan base-package="com.test" />



<mvc:annotation-driven />

<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
    <value>/pages/</value>
</property>
<property name="suffix">
    <value>.jsp</value>
</property>`enter code here`
</bean>
</beans>

到目前为止,我尝试了上面突出显示的多个jackson jar,我尝试了传递accept application/xml,我尝试了produced=“application/xml”,但都没有成功。请让我知道我在上面的配置缺失了什么。是jars还是一些注释或xml配置???

共有1个答案

李星波
2023-03-14

您需要告诉SpringController方法可以生成JSON和XML。这是使用以下方法完成的:

@RequestMapping(... produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})

spring将接受XML请求。

 类似资料:
  • 我有一个rest服务,实现如下- 我得到了所有的头和响应状态正确,但我没有得到json响应。这里怎么了?

  • 我正在测试SpringREST服务,特别是POST方法 以下是我的控制器的代码片段: 员工类别: 我在pom.xml中也包含了jackson库的依赖 pom.xml 当我提交请求时,我的状态为:415不支持的媒体类型 这是我收到的错误消息:服务器拒绝了此请求,因为请求实体的格式不受请求方法的请求资源的支持。 请说明我做错了什么?

  • 我需要一种在java中记录这个XML响应的方法。当我从我的java发送请求时,这是返回的。我需要一种打印出响应描述的方法。 下面是我的java代码:

  • 我需要将基于soap的应用程序转换为基于rest的quarkus应用程序。 我需要一个quarkusRest服务采取以下请求和产生响应。

  • 我正试图用glassFish 4.1.1和非常简单的HelloWorld服务在IntelliJ上开发一个RESTful服务,但我不明白为什么它不起作用。根据他们的教程,我根据需要配置了IntelliJ IDEA- https://www.jetbrains.com/help/idea/creating-and-running-your-first-restful-web-service.html#

  • 当我发送请求时,握手成功。下面是请求和响应头: 请求标头 连接maps.googleapis.com:443 HTTP/1.1客户端用户代理:apache-httpclient/4.1.1(Java1.5)传输连接:Keep-Alive主机:maps.googleapis.com 运输 连接:关闭 握手之后,没有进一步的请求和响应发生。