运行Hazelcast Management Center Web App时出现NoClassDefFoundError

时间:2014-07-07 20:29:25

标签: java hazelcast

我正在尝试在tomcat 8(和jetty 9)和jvm 1.7.0_51中运行Hazelcast管理中心Web应用程序版本3.2.3。我转到网页并输入登录屏幕的默认用户名,密码(admin:admin),我收到以下异常。 Hazelcast本身运行正常,我可以通过编程方式操作我的Map。

有没有其他人在运行管理中心时遇到问题?

    javax.servlet.ServletException: Filter execution threw an exception
    root cause

    java.lang.NoClassDefFoundError: Could not initialize class  com.hazelcast.webmonitor.repositories.SerializationHelper
    com.hazelcast.webmonitor.repositories.UserRepository.save(UserRepository.java:47)
    com.hazelcast.webmonitor.repositories.UserRepository.login(UserRepository.java:88)
    com.hazelcast.webmonitor.service.UserManager.login(UserManager.java:188)
    com.hazelcast.webmonitor.service.UserManager.authenticate(UserManager.java:219)
    org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
    org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:94)
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:195)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)

After removing the 2nd copy of the hazelcast jar I get this message when i try to login to the hazelcast war:

    11-Jul-2014 17:00:10.891 WARNING [http-nio-8080-exec-1]   com.hazelcast.webmonitor.repositories.UserRepository.null Problem while reading   DataSerializable, namespace: 0, id: 0, class: com.hazelcast.webmonitor.model.User,   exception: com.hazelcast.webmonitor.model.User
     com.hazelcast.nio.serialization.HazelcastSerializationException: Problem while reading DataSerializable, namespace: 0, id: 0, class: com.hazelcast.webmonitor.model.User,   exception: com.hazelcast.webmonitor.model.User
        at com.hazelcast.nio.serialization.DataSerializer.read(DataSerializer.java:114)
        at com.hazelcast.nio.serialization.DataSerializer.read(DataSerializer.java:36)
        at  com.hazelcast.nio.serialization.StreamSerializerAdapter.read(StreamSerializerAdapter.java:59)
        at com.hazelcast.nio.serialization.SerializationServiceImpl.toObject(SerializationServiceImpl.java:221)
         at com.hazelcast.webmonitor.repositories.SerializationHelper.deserialize(SerializationHelper.java:87)
        at com.hazelcast.webmonitor.repositories.SerializationHelper.deserialize(SerializationHelper.java:94)
        at com.hazelcast.webmonitor.repositories.UserRepository.get(UserRepository.java:151)
        at com.hazelcast.webmonitor.repositories.UserRepository.login(UserRepository.java:80)
        at com.hazelcast.webmonitor.service.UserManager.login(UserManager.java:188)
        at com.hazelcast.webmonitor.service.UserManager.authenticate(UserManager.java:219)
        at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
        at org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:94)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:195)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:78)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
        at com.jamonapi.http.JAMonTomcatValve.invoke(JAMonTomcatValve.java:67)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1033)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652)
        at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.ClassNotFoundException: com.hazelcast.webmonitor.model.User
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at com.hazelcast.nio.ClassLoaderUtil.tryLoadClass(ClassLoaderUtil.java:123)
        at com.hazelcast.nio.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:112)
        at com.hazelcast.nio.ClassLoaderUtil.newInstance(ClassLoaderUtil.java:64)
        at com.hazelcast.nio.serialization.DataSerializer.read(DataSerializer.java:103)
        ... 41 more

1 个答案:

答案 0 :(得分:2)

您的类路径中是否有多个版本的Hazelcast jar?如果是这样,您应该只在类路径中有一个正确构建Hazelcast和管理中心的序列化服务。

序列化服务在静态块中的SerializationHelper类中初始化,因此抛出的异常作为NoClassDefFoundError传播到类加载器。