【发布时间】:2016-01-18 01:11:32
【问题描述】:
在不配置内容协商视图解析器和管理器的情况下,需要添加哪些 maven 依赖项才能获得 XML 输出。通过使用基于类路径上的 jar 的默认消息转换器(基于接受标头的输出)。我可以通过对类路径具有 jackson-databind 依赖项来获得 JSON 输出。对于我正在使用的 XML
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.7</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.7</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${org.springframework.version}</version>
</dependency>
依赖项 - 我无法获得 XML 输出。我是否需要在配置文件中将任何 Marshaller(如 Jaxb2Marsahllar)配置为 bean。任何人都可以发布 JAXB2 的 Maven 依赖项。
我的实体类:
package com.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import org.hibernate.validator.constraints.NotEmpty;
@Entity
@Table(name = "Employee")
@XmlRootElement
public class Employee {
public Employee() {
}
public Employee(Integer empno, String name, String dept, Double salary) {
this.empno = empno;
this.name = name;
this.dept = dept;
this.salary = salary;
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer empno;
@Size(min = 1, max = 30)
@NotEmpty
private String name;
@NotEmpty
@Size(min = 1, max = 30)
private String dept;
/*
* @NotEmpty - cannot be set to double - supports String Collection Map
* arrays
*/
private Double salary;
@XmlAttribute
public Integer getEmpno() {
return empno;
}
public void setEmpno(Integer empno) {
this.empno = empno;
}
@XmlElement
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
@XmlElement
public Double getSalary() {
return salary;
}
public void setSalary(Double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Employee [empno=" + empno + ", name=" + name + ", dept=" + dept
+ ", salary=" + salary + "]";
}
}
我的控制器类:
@Controller
公共类 EmployeeController {
@Autowired
EmployeeRepository employeeRepository;
@RequestMapping(value = "/employees", method=RequestMethod.GET,
produces= {MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_VALUE})
public @ResponseBody List<Employee> findAllXml(){
return employeeRepository.findAll();
}
}
请任何人说依赖是否足够?需要补充什么..
【问题讨论】:
-
能否请您显示您的应用程序 context.xml
标签: spring spring-mvc