Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hazelcast从3.6.5升级到3.7.4_Java_Maven_Arraylist_Hazelcast_Hazelcast Imap - Fatal编程技术网

Java hazelcast从3.6.5升级到3.7.4

Java hazelcast从3.6.5升级到3.7.4,java,maven,arraylist,hazelcast,hazelcast-imap,Java,Maven,Arraylist,Hazelcast,Hazelcast Imap,Hi am按照hazelcast文档的说明将hazelcast从3.6.5升级到3.7.4 我遇到了一个异常,比如: java.lang.ClassCastException:com.hazelcast.spi.impl.UnmodifiableLazyList无法转换为java.util.ArrayList 我刚刚升级了hazelcast jar,我还需要升级其他jar吗 跟踪如下: 2017-01-24 11:33:44 ERROR error:162 - Exception occurre

Hi am按照hazelcast文档的说明将hazelcast从3.6.5升级到3.7.4

我遇到了一个异常,比如: java.lang.ClassCastException:com.hazelcast.spi.impl.UnmodifiableLazyList无法转换为java.util.ArrayList

我刚刚升级了hazelcast jar,我还需要升级其他jar吗

跟踪如下:

2017-01-24 11:33:44 ERROR error:162 - Exception occurred in class com.rathish.test.services.authentication.impl.LocalClient the exception details are: Exception: 
[errorCode  =  504,
 errorMessage  =  Failure - Unable to retrieve entity from database
    Detailed exception trace = 
java.lang.ClassCastException: com.hazelcast.spi.impl.UnmodifiableLazyList cannot be cast to java.util.ArrayList
    at com.rathish.test.services.authentication.dao.RoleDao.getRoleByUserId(RoleDao.java:367)
    at com.rathish.test.services.authentication.impl.LocalClient.authorizeCredentials(LocalClient.java:108)
    at com.rathish.test.services.authentication.AuthValidation.validateAuthorization(AuthValidation.java:420)
    at com.rathish.test.services.authentication.AuthValidation.loginValidation(AuthValidation.java:104)
    at com.rathish.test.services.authentication.AuthenticationService.login(AuthenticationService.java:140)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171)
    at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:387)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:331)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:103)
    at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:271)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297)
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:254)
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1028)
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:372)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:381)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:344)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221)
    at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:141)
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.process(ProxyServlet.java:74)
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.doFilter(ProxyServlet.java:291)
    at org.eclipse.equinox.servletbridge.BridgeServlet.process(BridgeServlet.java:149)
    at org.eclipse.equinox.servletbridge.BridgeFilter.doFilter(BridgeFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at com.rathish.test.web.filter.SessionValidationFilter.doFilter(SessionValidationFilter.java:105)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
原因:java.lang.ClassCastException:com.hazelcast.spi.impl.UnmodifiableLazyList无法转换为java.util.ArrayList 位于com.rathish.test.services.authentication.dao.RoleDao.getRoleByUserId(RoleDao.java:367) ... 56多 与maven一起使用

<dependency>
        <groupId>com.hazelcast</groupId>
        <artifactId>hazelcast</artifactId>
        <version>3.7.4</version>
    </dependency>
    <dependency>
        <groupId>com.hazelcast</groupId>
        <artifactId>hazelcast-client</artifactId>
        <version>3.7.4</version>
    </dependency>

com.hazelcast
黑兹卡斯特
3.7.4
com.hazelcast
hazelcast客户端
3.7.4

您确定它曾经在3.6.x中工作过吗? 我正在查看github中的历史,它总是用来扩展
java.util.AbstractList
,如下所示:

公共类不可修改的Lazylist扩展了AbstractList实现了数据序列化{


因此,它从未完全基于stacktrace扩展
ArrayList

,第367行的RoleDao类如下所示(变量和方法名称完全是任意的):


(或
Collection
,取决于API声明的返回类型)。

请同时附加RoleDao类。根据stacktrace判断,您使用的是
ArrayList
引用,而不是
List
引用,因此假设对象的具体类型(现在已更改)。不是答案。此外,问题不在于它会在任何时间点扩展
ArrayList
。谢谢你的友好回答。如果它扩展了它,铸造将工作,兄弟。是的,然后我们就不会有这个问题。但是问题在于铸造本身。他的代码对具体类型进行了假设,而不是使用whAPI返回一个以上的接口。正如您在我的回答的注释中的git commit中所看到的那样,
ArrayList
的一些实例改为使用
UnmodifiableLazyList
。因此,问题从来都不是
UnmodifiableLazyList
是否扩展
ArrayList
。这就是我认为您所指的g到。@asgs看起来很可能是罪魁祸首。
ArrayList<Baz> foo = (ArrayList<Baz>)hazelCast.findById(bar);
List<Baz> foo = hazelCast.findById(bar);