Java ';T';在LocalDateTime中不存在

Java ';T';在LocalDateTime中不存在,java,spring,spring-boot,jackson,Java,Spring,Spring Boot,Jackson,所以我有两个申请。一个向AMQ经纪人生产,另一个从AMQ消费 我在消费应用程序中定义了DTO,其中生产应用程序也可以访问此DTO: @Data @Builder public class MemberDTO implements Serializable, AuditDTO { private final String member; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonSerialize(u

所以我有两个申请。一个向AMQ经纪人生产,另一个从AMQ消费

我在消费应用程序中定义了DTO,其中生产应用程序也可以访问此DTO:

@Data
@Builder
public class MemberDTO implements Serializable, AuditDTO
{

   private final String member;
   @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
   @JsonSerialize(using = LocalDateTimeSerializer.class)
   @JsonDeserialize(using = LocalDateTimeDeserializer.class)
   private final LocalDateTime timestamp;


}
问题在于,消费方正在处理此异常:
原因:java.time.format.DateTimeParseException:无法在索引10处分析文本“2021-04-27 10:42:09”

当我在即将使用
jsmtemplate.convertAndSend(…)
发送之前打印出对象时,我可以看到:
MemberDTO(member=BOB,timestamp=2021-04-27T10:46:42.105403)

但是当我查看Artemis代理时,时间戳字段似乎变为
2021-04-27 10:42:09
,因此为什么在消费端它无法解析它,因为它缺少
T

这是im在生产端使用的消息转换器:

      MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
      converter.setTargetType(MessageType.TEXT);
      converter.setTypeIdPropertyName("_type");
      converter.setObjectMapper(new ObjectMapper()
//                                   .registerModule(new ParameterNamesModule())
//                                                  .registerModule(new Jdk8Module()));
                                                  .registerModule(new JavaTimeModule()));
有些人发现很难理解我想说的话,所以底线是:
为什么消费应用程序在尝试从AMQ消费对象后构建该对象时会抛出异常?

您的JsonFormat有一个T应该位于的空间。将其更改为
“yyyy-MM-dd'T'HH:MM:ss”
。(我将此添加为注释而不是答案,因为我不完全确定我是否理解此问题。如果它对您有效,我将将其转换为答案。)您希望获得什么输出?(请注意,如果您想要亚秒精度,您也需要调整格式。)@JonSkeet我得到
com.fasterxml.jackson.databind.JsonMappingException:Unknown pattern letter:T]
当我添加'T'@SikorskyS60时,我试图得到要在消费端生成的对象,localdatetime的格式为yyyy-MM-dd HH:MM:ss@bootlover123:根据我的评论,您是否将其包含在单引号中?