我有这个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;
}
}
因此,我尝试实现一个使用请求类的网络方法:
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
有什么建议吗?
谢谢。
答案 0 :(得分:0)
也许您可以尝试使用适配器。像这样:
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"
作为信息,但是显然您可以更改模式以适合您的需求。