Class.java.LocalDateTime非公共或不允许实例化



我有这个DTO:

@XmlAccessorType(XmlAccessType.FIELD)
public class dateDTO{
private LocalDateTime date;
public LocalDateTime getDate() {
return date;
}
public void setDate(LocalDateTime date) {
this.date = date;
}
}

我在这个请求类中使用它:

@XmlAccessorType(XmlAccessType.FIELD)
public class testRequest {
private dateDTO dDTO;
public dateDTO getdDTO() {
return dDTO;
}
public void setdDTO(dateDTO dDTO) {
this.dDTO = dDTO;
}
}

因此,我尝试实现一个使用请求类的web方法:

public testResponse testMethod(testRequest theRequest) {
return null;
}

testMethod有这个接口:

@WebMethod(operationName="test")
@WebResult(name="testResponse")
testResponse testMethod(@WebParam(name = "testRequest") testRequest req);

但我在设计时就已经收到了这个消息:

Web method problem:Class.java.LocalDateTime non public or does not allow instantiation

有什么建议吗?

提前谢谢。

也许您可以尝试使用适配器。像这样:

public class LocalDateTimeAdapter extends XmlAdapter<String, LocalDateTime> {

public String marshal(LocalDateTime val) throws Exception {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
return val.format(formatter);
}

public LocalDateTime unmarshal(String val) throws Exception {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
return LocalDateTime.parse(val, formatter);
}
}

然后声明在您的DTO:中使用它

@XmlJavaTypeAdapter(LocalDateTimeAdapter.class)
private LocalDateTime date;

在本例中,我假设您使用模式"yyyy-MM-dd HH:mm"作为信息,但显然您可以更改模式以满足您的需求。

最新更新