当我尝试执行POST Web服务方法时,我收到此错误:
我正在使用Postman发送请求:
我的实体如下:
@Entity
@XmlRootElement
@Table(name = "bandeiras")
public class BandeiraCartao extends EntidadeBase {
private static final long serialVersionUID = 5944226798248177637L;
@XmlElement
@Column(length = 60, nullable = false)
private String nome;
@XmlElement
@Column(nullable = false)
private Integer codigoImagem;
//getters and setters//
}
这是超类:
@MappedSuperclass
public abstract class EntidadeBase implements Serializable {
private static final long serialVersionUID = -3912856473903279467L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@PodamStrategyValue(value = NullStrategy.class)
private Long id;
@Column(name = "cadastro_data", nullable = false)
@PodamStrategyValue(value = PastDateStrategy.class)
private LocalDate dataCadastro;
@Column(name = "modificado_data", nullable = false)
@PodamStrategyValue(value = PastDateStrategy.class)
private LocalDate dataModificacao;
@Column(nullable = false)
@PodamBooleanValue(boolValue = false)
private Boolean modificado;
@Column(nullable = false)
@PodamBooleanValue(boolValue = true)
private Boolean ativo;
//getters and setters//
}
最后是我正在调用的端点方法:
@Path("/bandeira")
public class BandeiraCartaoResource extends AbstractResource<BandeiraCartao> {
private static final long serialVersionUID = 7080737992715054407L;
@POST
@Override
@Transactional
public Response inserir(@NotNull BandeiraCartao entidade) {
return super.inserir(entidade);
}
...
}
我添加了Genson依赖项,以便不必提供我自己的MessageBodyWritter实现。 我还添加了MOXy jersey依赖试图解决这个问题,但它没有用。 作为附加信息,它在tomcat 8上运行。 任何线索的人?
答案 0 :(得分:2)
从我刚刚测试的......
在post man中简单地使用 JSON 原始类型并不设置所需的标题。您可以单击预览按钮,它将显示整个请求的预览,包括标题。您需要的是标题Content-Type:application/json
。您将在预览窗口中看到它不存在。您可以使用主屏幕上的 Headers 按钮进行设置。只需将Header
设置为Content-Type
,将value
设置为application/json
。
<强>更新强>
如果您打开Chrome开发者工具并发出请求(选择&#34; Network / XHR&#34;标签),您可以看到使用XHR请求设置的默认标头。它实际上不仅仅是您在Postman预览窗口中看到的Cache-Control
。您将看到它将内容类型明确设置为text/plain