InjectionUtils无法访问类DateTimeZoneBuilder $ PrecalculatedZone的成员 [英] InjectionUtils can not access a member of class DateTimeZoneBuilder$PrecalculatedZone

查看:85
本文介绍了InjectionUtils无法访问类DateTimeZoneBuilder $ PrecalculatedZone的成员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过cxf实现发送发布请求。但是我得到

I am trying to send a post request with cxf implementation. But I am getting


java.lang.IllegalAccessException:类org.apache.cxf.jaxrs.utils.InjectionUtils无法访问其成员类org.joda.time.tz.DateTimeZoneBuilder $ PrecalculatedZone,带修饰符 public

java.lang.IllegalAccessException: Class org.apache.cxf.jaxrs.utils.InjectionUtils can not access a member of class org.joda.time.tz.DateTimeZoneBuilder$PrecalculatedZone with modifiers "public"

我的方法接口是:

@GET
@Path("history")
HistoryResult getHistory(@Valid @QueryParam("") HistoryParameters historyParameters)

HistoryParameters具有两个joda时间LocalDate:
公共类HistoryParameters {

HistoryParameters has two joda time LocalDate : public class 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() {

    }
    ...
}

这里是堆栈跟踪:


java.lang.IllegalAccessException:类org.apache。 cxf.jaxrs.utils.InjectionUtils无法访问带有修饰符 public的类org.joda.time.tz.DateTimeZoneBuilder $ PrecalculatedZone的成员,位于sun.reflect.Reflection.Reflection.ensureMemberAccess(Reflection.java:109)
在java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:261)
在java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:253)
在java.lang。在org.apache.cxf.jaxrs.utils.InjectionUtils.extractFromMethod(InjectionUtils.java:324)
(在org.apache.cxf.jaxrs)上的Reflection.Method.invoke(Method.java:599)
。 utils.InjectionUtils.extractFromMethod(InjectionUtils.java:316)
在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)
在org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean(InjectionUtils.java:1174)
在org.apache.cxf.jaxrs.utils.InjectionUtils.extractValuesFromBean(InjectionUtils.java:1109)
在org.apache.cxf.jaxrs.client.ClientProxyImpl.handleQue上的
(org.apache.cxf.jaxrs.client.AbstractClient.addMatrixQueryParamsToBuilder(AbstractClient.java:677)
ries(ClientProxyImpl.java:455)
在org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:178)
在com.sun.proxy。$ Proxy78.getHistoryEntries(未知源)

java.lang.IllegalAccessException: Class org.apache.cxf.jaxrs.utils.InjectionUtils can not access a member of class org.joda.time.tz.DateTimeZoneBuilder$PrecalculatedZone with modifiers "public" at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:109) at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:261) at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:253) at java.lang.reflect.Method.invoke(Method.java:599) at org.apache.cxf.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) at org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean(InjectionUtils.java:1174) at org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean(InjectionUtils.java:1174) at org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean(InjectionUtils.java:1174) at org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean(InjectionUtils.java:1174) at org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean(InjectionUtils.java:1174) at org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean(InjectionUtils.java:1174) at org.apache.cxf.jaxrs.utils.InjectionUtils.fillInValuesFromBean(InjectionUtils.java:1174) at 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) at org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:178) at com.sun.proxy.$Proxy78.getHistoryEntries(Unknown Source)


推荐答案

我解决了我的问题,而不是使用内省的@QueryParam()所有属性,我都使用@BeanParam批注,但要注意在pojo中的@QueryParam(在我的示例中为HistoryParameters)必须在setter上设置。

I fixed my issue instead of using @QueryParam("") which introspect all attributes, I used @BeanParam annotation but be careful @QueryParam inside the pojo (HistoryParameters in my example) have to be set on setter.

这篇关于InjectionUtils无法访问类DateTimeZoneBuilder $ PrecalculatedZone的成员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆