Playframework 2.0 Swagger Play Framework 2.2-Joda日期时间问题
我正试图在基于wordnik的swagger-play2的scala play2.2项目中使用swagger。似乎在处理Joda DateTime时有问题。使用wordnik示例播放项目,在“订单”案例类中Playframework 2.0 Swagger Play Framework 2.2-Joda日期时间问题,playframework-2.0,jodatime,swagger,Playframework 2.0,Jodatime,Swagger,我正试图在基于wordnik的swagger-play2的scala play2.2项目中使用swagger。似乎在处理Joda DateTime时有问题。使用wordnik示例播放项目,在“订单”案例类中 @ApiModel("Order") case class Order ( @(ApiModelProperty @field)(position=1)id: Long, @(ApiModelProperty @field)(position=2)petId: Long, @(A
@ApiModel("Order")
case class Order (
@(ApiModelProperty @field)(position=1)id: Long,
@(ApiModelProperty @field)(position=2)petId: Long,
@(ApiModelProperty @field)(position=3)quantity: Int,
@(ApiModelProperty @field)(position=4)shipDate: DateTime,
@(ApiModelProperty @field)(position=5)status: String
)
我将shipDate从java Date更改为Joda DateTime,当我调用/store/order API时,它会抛出一个错误:
[JsonMappingException: Class org.joda.time.tz.CachedDateTimeZone has no default constructor;
can not instantiate default bean value to support 'properties=JsonSerialize.Inclusion.NON_DEFAULT' annotation
(through reference chain: scala.collection.convert.SeqWrapper[0]->models.Order["shipDate"]->org.joda.time.DateTime["zone"])]
有什么想法吗
谢谢。我也有类似的问题。换句话说,我确实得到了同样的例外。 因此,我将发布对我有效的解决方案 解决方案是在使用ScalaJsonUtil.mapper的地方调整BaseApiController.toJsonString(data:Option[Any])方法 替换
ScalaJsonUtil.mapper.writeValueAsString(d)
与
JsonInclude.Include.NON_为空,来自以下导入
import com.fasterxml.jackson.annotation.JsonInclude
或者,您可以使用这个库 该库采用与注释不同的方法(这迫使您学习新的API),您可以直接在路由文件中以注释的形式编写swagger规范。它会自动生成joda.datetime的定义
import com.fasterxml.jackson.annotation.JsonInclude