2016-12-29 2 views
1

에서 클래스를로드 할 수 없습니다.
다음과 같은 jar : tomcat7/lib를 넣었습니다. hazelcast-tomcat8-sessionmanager-1.0.3.jar, hazelcast-3.7.4.jar 및 hazelcast-client-3.7.4.jar. 내가 액세스 할 때hazelcast 바람둥이 세션은 내가 바람둥이 서버에 hazelcast 세션을 구현하기 위해 노력하고있어 응용 프로그램 컨텍스트

<Manager className="com.hazelcast.session.HazelcastSessionManager" 
      clientOnly="true"/> 

모든 것이 잘 시작 보이지만 :

<Listener className="com.hazelcast.session.ClientServerLifecycleListener" /> 

및 tomcat8에서

/conf의/카탈 리/localhost를/app.xml : tomcat8/conf의/server.xml의 난이 내가받는 앱 :

29-Dec-2016 16:24:08.073 SEVERE [http-nio-8443-exec-8] org.apache.coyote.http11.AbstractHttp11Processor.process Error processing arequest 
com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.ClassNotFoundException: org.springframework.security.ui.savedrequest.SavedRequest 
     at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:224) 
     at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48) 
     at com.hazelcast.internal.serialization.impl.AbstractSerializationService.readObject(AbstractSerializationService.java:251) 
     at com.hazelcast.internal.serialization.impl.ByteArrayObjectDataInput.readObject(ByteArrayObjectDataInput.java:600) 
     at com.hazelcast.session.HazelcastSession.deserializeMap(HazelcastSession.java:141) 
     at com.hazelcast.session.HazelcastSession.readData(HazelcastSession.java:127) 
     at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.readInternal(DataSerializableSerializer.java:151) 
     at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:104) 
     at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:54) 
     at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48) 
     at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toObject(AbstractSerializationService.java:172) 
     at com.hazelcast.client.spi.ClientProxy.toObject(ClientProxy.java:186) 
     at com.hazelcast.client.proxy.ClientMapProxy.getInternal(ClientMapProxy.java:247) 
     at com.hazelcast.client.proxy.ClientMapProxy.get(ClientMapProxy.java:240) 
     at com.hazelcast.session.HazelcastSessionManager.findSession(HazelcastSessionManager.java:222) 
     at org.apache.catalina.connector.Request.isRequestedSessionIdValid(Request.java:2381) 
     at org.apache.catalina.connector.CoyoteAdapter.parseSessionCookiesId(CoyoteAdapter.java:1250) 
     at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:935) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:523) 
     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099) 
     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670) 
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520) 
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476) 
     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) 
Caused by: java.lang.ClassNotFoundException: org.springframework.security.ui.savedrequest.SavedRequest 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
     at com.hazelcast.nio.ClassLoaderUtil.tryLoadClass(ClassLoaderUtil.java:151) 
     at com.hazelcast.nio.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:120) 
     at com.hazelcast.nio.IOUtil$ClassLoaderAwareObjectInputStream.resolveClass(IOUtil.java:358) 
     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620) 
     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521) 
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1781) 
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353) 
     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373) 
     at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:219) 
     ... 26 more 

내가 뭘 잘못하고 있는지에 대한 단서가 있습니까? 감사합니다

+0

은 분명히 '봄 보안 웹 xxx.jar'는 클래스 패스/lib에 없습니다. 'HazelcastSessionManager'는이 jar에 의존합니다. –

+0

어떤 Tomcat 버전을 사용하고 있습니까? 8.0.39 또는 8.5.x? – emre

+0

앱은 hazelcast없이 완벽하게 작동합니다. 앱에서 5 년간 작동하며 모든 종속성이 있습니다. –

답변

0

뭔가가 현재 스레드의 컨텍스트를 변경하는 것 같습니다 ClassLoader 그래서 Hazelcast의 직렬화 서비스에서 클래스를 찾을 수 없습니다. Hazelcast Tomcat Session Manager의 GitHub 저장소에서 이것을 위해 issue을 만들었습니다. 거기에서 진행 상황을 추적 할 수 있습니다.

편집 :
당신이 문제에 대한 임시 수정 프로그램이 포함 this page에 JAR와 hazelcast-tomcat8-sessionmanager-1.0.3.jar를 교체하고 문제가 해결되는지 알려 주시기 바랍니다 수 있습니까?

+0

내가 지금 내가 가지고 당장은 또한 app.I에서 구현 hazelcast 레벨 2 캐시를 가지고 또 다른 문제가 corect ClassLoader.But을보고 생각이 지금'SEVERE : Hazelcast 클라이언트를 작성할 수 없습니다. java.lang.IllegalArgumentException : 유형 ID가 양수 여야합니다! 현재 : -200, 시리얼은 : com[email protected]6d6646ac는 com.hazelcast.internal.serialization.impl.AbstractSerializationService.register에서 \t (AbstractSerializationService.java:346는) \t' –

+0

이 hazelcast 스캔 단지를 보인다 클래스 직렬자를위한 클래스 패스에서, 그리고 그것들을 hazelcast-hibernate에서 찾았고 오류를 던졌습니다. –

+0

@dinulaurentiu 당신의 새로운 문제는 이것과 같을 것 같습니다 : http://stackoverflow.com/questions/32637634/hazelcast-hibernate-spring-in-payara-glassfish-environment-type-id-must-be and this 이전 GitHub 저장소에서 (https://github.com/hazelcast/hazelcast-hibernate4/issues/3) 문제를 해결하십시오. 이 문제를 해결하기 위해 공식 Hazelcast Hibernate 플러그인 GitHub 저장소에 새로운 문제를 만들 것입니다. – emre