2014-11-10 4 views
0

Я пытаюсь отправить запрос на отправку с реализацией 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)

+0

'DateTimeZoneBuilder $ PrecalculatedZone' кажется частным внутренним классом, и поэтому сообщение имеет смысл. Я не знаю, как CXF и JodaTime очень хорошо, но я предполагаю, что вам нужен какой-то пользовательский (возможно, код JodaTime). Вы отлаживались, чтобы увидеть, что CXF пытается конвертировать и из какого источника? – Thomas

+0

Я думаю, что моя проблема заключается в преобразовании экземпляра LocalDate. Моя проблема возникает, когда cxf проверяет все QueryParam на получение значения для преобразования. – jakcam

ответ

0

Я установил мой вопрос вместо использование @Query Параметр (""), который анализирует все атрибуты, я использовал аннотацию @BeanParam, но будьте осторожны @QueryParam внутри pojo (HistoryParameters в моем примере) должны быть установлены на setter.

Смежные вопросы