Я пытаюсь отправить запрос на отправку с реализацией cxf. Но я получаю
java.lang.IllegalAccessException: org.apache.cxf.jaxrs.utils.InjectionUtils Класс не может получить доступ к члену класса org.joda.time.tz.DateTimeZoneBuilder $ PrecalculatedZone с модификаторами «общедоступный "
Мой интерфейс метод:
@GET
@Path("history")
HistoryResult getHistory(@Valid @QueryParam("") HistoryParameters historyParameters)
HistoryParameters имеет два Joda времени LocalDate: HistoryParameters общественного класса {
@NotNull
@QueryParam("historyType")
private HistoryType historyType;
@FieldDescription(title = "Archive from date", value = "Archive from date")
@QueryParam("archiveFromDate")
private LocalDate archiveFromDate;
@FieldDescription(title = "Archive to date", value = "Archive to date")
@QueryParam("archiveToDate")
private LocalDate archiveToDate;
public HistoryParameters() {
}
...
}
Здесь StackTrace:
java.lang.IllegalAccessException: org.apache.cxf.jaxrs.utils.InjectionUtils Класс не может получить доступ к члену класса org.joda.time.tz.DateTimeZoneBuilder $ PrecalculatedZone с модификаторами «public» at sun.reflect.Reflection.ensureMemberAccess (Reflection.java:109) at java.lang.reflect.AccessibleObject.slowCheckMemberAccess (AccessibleObject.java:261) в java.lang.reflect.AccessibleObject. checkAccess (AccessibleObject.java:253) по адресу java.lang.reflect.Method.invoke (Method.java:599) at org.apache.cx f.jaxrs.utils.InjectionUtils.extractFromMethod (InjectionUtils.java:324) at org.apache.cxf.jaxrs.utils.InjectionUtils.extractFromMethod (InjectionUtils.java:316) at org.apache.cxf.jaxrs.utils. InjectionUtils.fillInValuesFromBean (InjectionUtils.java:1147) на org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean (InjectionUtils.java:1174) на org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean (InjectionUtils. Java: 1174) на org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean (InjectionUtils.java:1174) на org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean (InjectionUtils.java:1174) на org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean (InjectionUtils.java:1174) at org.apache.cxf.jaxrs. utils.InjectionUtils.fillInValuesFromBean (InjectionUtils.java:1174) на org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean (InjectionUtils.java:1174) в org.apache.cxf.jaxrs.utils.InjectionUtils.extractValuesFromBean (InjectionUtils.java:1109) at org.apache.cxf.jaxrs.client.AbstractClient.addMatrixQueryParamsToBuilder (AbstractClient.java:677) at org.apache.cxf.jaxrs.client.ClientProxyImpl.handleQueries (ClientProxyImpl.java:455) в org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke (ClientProxyImpl.java:178) на com.sun.proxy. $ Proxy78.getHistoryEntries (Unknown Source)
'DateTimeZoneBuilder $ PrecalculatedZone' кажется частным внутренним классом, и поэтому сообщение имеет смысл. Я не знаю, как CXF и JodaTime очень хорошо, но я предполагаю, что вам нужен какой-то пользовательский (возможно, код JodaTime). Вы отлаживались, чтобы увидеть, что CXF пытается конвертировать и из какого источника? – Thomas
Я думаю, что моя проблема заключается в преобразовании экземпляра LocalDate. Моя проблема возникает, когда cxf проверяет все QueryParam на получение значения для преобразования. – jakcam