I am implementing a new CAS server, version 3.5.2.1, and experienced this 
enclosed stack trace.  I followed the instructions at:

  http://jasig.github.io/cas/current/installation/Memcached-Ticket-Registry.html

We use Google Apps for education and have this integrated in our exiting CAS 
server.  Is anyone using this in production?  What configuration change(s) do I 
need to make?  Would I be better off just using the "CAS 3.4.x and Prior 
Memcached Configuration” instructions from:

  https://wiki.jasig.org/display/CASUM/MemcacheTicketRegistry

Thanks in advance.

-=-=- Begin ticketRegistry.xml -=-=-
<beans xmlns="http://www.springframework.org/schema/beans";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xmlns:c="http://www.springframework.org/schema/c";
       xmlns:p="http://www.springframework.org/schema/p";
       xmlns:util="http://www.springframework.org/schema/util";
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/util 
http://www.springframework.org/schema/util/spring-util.xsd";>

    <bean id="ticketRegistry"
          class="org.jasig.cas.ticket.registry.MemCacheTicketRegistry"
          c:client-ref="memcachedClient"
          c:ticketGrantingTicketTimeOut="${tgt.maxTimeToLiveInSeconds}"
          c:serviceTicketTimeOut="${st.timeToKillInSeconds}" />

    <bean id="memcachedClient" 
class="net.spy.memcached.spring.MemcachedClientFactoryBean"
          p:servers="${memcached.servers}"
          p:protocol="${memcached.protocol}"
          p:locatorType="${memcached.locatorType}"
          p:failureMode="${memcached.failureMode}"
          p:transcoder-ref="kryoTranscoder">
        <property name="hashAlg">
            <util:constant 
static-field="net.spy.memcached.DefaultHashAlgorithm.${memcached.hashAlgorithm}"
 />
        </property>
    </bean>

    <bean id="kryoTranscoder"
          class="org.jasig.cas.ticket.registry.support.kryo.KryoTranscoder"
          init-method="initialize"
          c:initialBufferSize="8192" />
</beans>

-=-=- End ticketRegistry.xml -=-=- 


-=-=- Begin relevant cas.properties -=-=-
        . . .
tgt.maxTimeToLiveInSeconds=28800
st.timeToKillInSeconds=15

##
# TicketRegistray Memcache configuration see: 
https://code.google.com/p/spymemcached/wiki/SpringIntegration
# and 
http://jasig.github.io/cas/current/installation/Memcached-Ticket-Registry.html
#memcached.servers=cas-1.example.org:11211,cas-2.example.org:11211,cas-3.example.org:11211
memcached.servers=cashost-a.example.com:11211,cashost-b.example.com:11211
memcached.hashAlgorithm=FNV1_64_HASH
memcached.protocol=BINARY
memcached.locatorType=ARRAY_MOD
memcached.failureMode=Redistribute
        . . .
-=-=- End relevant cas.properties -=-=-



-=-=- Begin Stack Trace -=-=-
[MemCacheTicketRegistry] - Failed fetching 
TGT-2-DLexehJJ6Sg0ukmj3nX6XNdP21V7AaHUfmgLaIFHrRY0c7wPyR-HostName 
java.lang.RuntimeException: Exception waiting for value
    at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1001)
    at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1018)
    at 
org.jasig.cas.ticket.registry.MemCacheTicketRegistry.getTicket(MemCacheTicketRegistry.java:146)
    at 
org.jasig.cas.audit.spi.TicketOrCredentialPrincipalResolver.resolveFromInternal(TicketOrCredentialPrincipalResolver.java:70)
    at 
org.jasig.cas.audit.spi.TicketOrCredentialPrincipalResolver.resolveFrom_aroundBody0(TicketOrCredentialPrincipalResolver.java:54)
    at 
org.jasig.cas.audit.spi.TicketOrCredentialPrincipalResolver.resolveFrom_aroundBody1$advice(TicketOrCredentialPrincipalResolver.java:57)
    at 
org.jasig.cas.audit.spi.TicketOrCredentialPrincipalResolver.resolveFrom(TicketOrCredentialPrincipalResolver.java:1)
    at 
com.github.inspektr.audit.AuditTrailManagementAspect.handleAuditTrail(AuditTrailManagementAspect.java:128)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at 
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
    at 
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
    at 
org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
    at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
    at 
org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
    at 
org.perf4j.aop.AbstractTimingAspect$1.proceed(AbstractTimingAspect.java:47)
    at 
org.perf4j.aop.AgnosticTimingAspect.runProfiledMethod(AgnosticTimingAspect.java:53)
    at 
org.perf4j.aop.AbstractTimingAspect.doPerfLogging(AbstractTimingAspect.java:45)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at 
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
    at 
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
    at 
org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
    at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
    at 
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
    at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at com.sun.proxy.$Proxy29.grantServiceTicket(Unknown Source)
    at 
org.jasig.cas.web.flow.GenerateServiceTicketAction.doExecute(GenerateServiceTicketAction.java:52)
    at 
org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)
    at 
org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)
    at 
org.springframework.webflow.action.EvaluateAction.doExecute(EvaluateAction.java:77)
    at 
org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)
    at 
org.springframework.webflow.execution.AnnotatedAction.execute(AnnotatedAction.java:145)
    at 
org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)
    at 
org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:101)
    at org.springframework.webflow.engine.State.enter(State.java:194)
    at 
org.springframework.webflow.engine.Transition.execute(Transition.java:227)
    at 
org.springframework.webflow.engine.DecisionState.doEnter(DecisionState.java:51)
    at org.springframework.webflow.engine.State.enter(State.java:194)
    at 
org.springframework.webflow.engine.Transition.execute(Transition.java:227)
    at 
org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:393)
    at 
org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
    at 
org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:119)
    at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:555)
    at 
org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:388)
    at 
org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
    at 
org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
    at org.springframework.webflow.engine.State.enter(State.java:194)
    at 
org.springframework.webflow.engine.Transition.execute(Transition.java:227)
    at 
org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:393)
    at 
org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
    at 
org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:119)
    at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:555)
    at 
org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:388)
    at 
org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
    at 
org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
    at org.springframework.webflow.engine.State.enter(State.java:194)
    at 
org.springframework.webflow.engine.Transition.execute(Transition.java:227)
    at 
org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:393)
    at 
org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
    at 
org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:119)
    at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:555)
    at 
org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:388)
    at 
org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
    at 
org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
    at org.springframework.webflow.engine.State.enter(State.java:194)
    at 
org.springframework.webflow.engine.Transition.execute(Transition.java:227)
    at 
org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:393)
    at 
org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
    at 
org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:119)
    at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:555)
    at 
org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:388)
    at 
org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
    at 
org.springframework.webflow.engine.ViewState.handleEvent(ViewState.java:232)
    at org.springframework.webflow.engine.ViewState.resume(ViewState.java:196)
    at org.springframework.webflow.engine.Flow.resume(Flow.java:545)
    at 
org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:261)
    at 
org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169)
    at 
org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183)
    at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
    at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
    at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
    at 
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at 
org.jasig.cas.web.init.SafeDispatcherServlet.service_aroundBody2(SafeDispatcherServlet.java:128)
    at 
org.jasig.cas.web.init.SafeDispatcherServlet.service_aroundBody3$advice(SafeDispatcherServlet.java:57)
    at 
org.jasig.cas.web.init.SafeDispatcherServlet.service(SafeDispatcherServlet.java:1)
    at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
    at 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
    at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at 
com.github.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:63)
    at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
    at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
    at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.util.concurrent.ExecutionException: 
com.esotericsoftware.kryo.SerializationException: Unable to deserialize object 
of type: org.jasig.cas.ticket.TicketGran
tingTicketImpl
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:188)
    at 
net.spy.memcached.transcoders.TranscodeService$Task.get(TranscodeService.java:97)
    at net.spy.memcached.internal.GetFuture.get(GetFuture.java:63)
    at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:997)
    ... 117 more
Caused by: com.esotericsoftware.kryo.SerializationException: Unable to 
deserialize object of type: org.jasig.cas.ticket.TicketGrantingTicketImpl
    at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:571)
    at 
org.jasig.cas.ticket.registry.support.kryo.KryoTranscoder.decode(KryoTranscoder.java:165)
    at 
net.spy.memcached.transcoders.TranscodeService$1.call(TranscodeService.java:63)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at 
net.spy.memcached.transcoders.TranscodeService$Task.run(TranscodeService.java:110)
    at 
net.spy.memcached.transcoders.TranscodeService$Task.get(TranscodeService.java:96)
    ... 119 more
Caused by: com.esotericsoftware.kryo.SerializationException: Unable to 
deserialize object of type: 
org.jasig.cas.authentication.principal.GoogleAccountsService
Serialization trace:
services (org.jasig.cas.ticket.TicketGrantingTicketImpl)
    at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:571)
    at 
com.esotericsoftware.kryo.serialize.MapSerializer.readObjectData(MapSerializer.java:129)
    at 
com.esotericsoftware.kryo.serialize.FieldSerializer.readObjectData(FieldSerializer.java:220)
    at 
com.esotericsoftware.kryo.serialize.FieldSerializer.readObjectData(FieldSerializer.java:200)
    at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:566)
    ... 124 more
Caused by: com.esotericsoftware.kryo.SerializationException: Class cannot be 
created (missing no-arg constructor): 
org.jasig.cas.authentication.principal.GoogleAccountsSer
vice
    at com.esotericsoftware.kryo.Kryo.newInstance(Kryo.java:688)
    at com.esotericsoftware.kryo.Serializer.newInstance(Serializer.java:75)
    at 
com.esotericsoftware.kryo.serialize.FieldSerializer.readObjectData(FieldSerializer.java:200)
    at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:566)
    ... 128 more
Caused by: java.lang.InstantiationException: 
org.jasig.cas.authentication.principal.GoogleAccountsService
    at java.lang.Class.newInstance(Class.java:359)
    at com.esotericsoftware.kryo.Kryo.newInstance(Kryo.java:676)
    ... 131 more

-- 
Bob Beer <[email protected]>
Ohio Northern University, Information Technology, Ada, OH  45810




-- 
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

Reply via email to