What would cause the following exception when session management is
configured with jetty-runner on startup?

2020-01-03 16:27:56.206:INFO:oeja.AnnotationConfiguration:main: Scanning
elapsed time=7178ms
2020-01-03 16:27:56.214:DBUG:oejs.session:main: SessionManager default
maxInactiveInterval=1800
2020-01-03 16:27:56.216:DBUG:oejs.session:main: SessionManager default
maxInactiveInterval=1800
2020-01-03 16:27:56.223:INFO:oejshC.ROOT:main: No Spring
WebApplicationInitializer types detected on classpath
2020-01-03 16:27:56.517:INFO:oejs.session:main: DefaultSessionIdManager
workerName=node0
2020-01-03 16:27:56.517:INFO:oejs.session:main: No SessionScavenger set,
using defaults
2020-01-03 16:27:56.519:DBUG:oejs.session:main: Using own scheduler for
scavenging
2020-01-03 16:27:56.519:INFO:oejs.session:main: node0 Scavenging every
660000ms
2020-01-03 16:27:56.655:WARN:oejw.WebAppContext:main: Failed startup of
context o.e.j.w.WebAppContext@737996a0
{/tavconnect-production-1512-md1,/,file:///Users/me/jetty/tmpdir/jetty-0_0_0_0-8080-tavconnect-production-1512-md1_war-_-any-2325432774449264012.dir/webapp/,UNAVAILABLE}{current.war}
java.lang.IllegalStateException: No SessionContext
at
org.eclipse.jetty.server.session.AbstractSessionDataStore.doStart(AbstractSessionDataStore.java:192)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
at
org.eclipse.jetty.server.session.AbstractSessionCache.doStart(AbstractSessionCache.java:213)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:100)
at
org.eclipse.jetty.server.handler.ScopedHandler.doStart(ScopedHandler.java:120)
at
org.eclipse.jetty.server.session.SessionHandler.doStart(SessionHandler.java:504)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:100)
at
org.eclipse.jetty.server.handler.ScopedHandler.doStart(ScopedHandler.java:120)
at
org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:880)
at
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:356)
at
org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1445)
at
org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1409)
at
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:822)
at
org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:275)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:100)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:100)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
at org.eclipse.jetty.server.Server.start(Server.java:407)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:100)
at org.eclipse.jetty.server.Server.doStart(Server.java:371)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
at org.eclipse.jetty.runner.Runner.run(Runner.java:520)
at org.eclipse.jetty.runner.Runner.main(Runner.java:565)
2020-01-03 16:27:56.656:INFO:oejs.RequestLogWriter:main: Opened
/Users/johnruggentaler/logs/2020_01_03-requests.log
2020-01-03 16:27:56.671:INFO:oejs.AbstractConnector:main: Started
ServerConnector@6fdb1f78{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2020-01-03 16:27:56.672:INFO:oejs.Server:main: Started @20115ms
2020-01-03 16:38:56.532:DBUG:oejs.session:Session-HouseKeeper-4135c3b-1:
node0 scavenging sessions

OS version: Mac OS Catalina 10.15.2
jetty-runner version: 9.4.25.v20191220
Java version: 1.8.0_232

Here is my context.xml
<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "
http://www.eclipse.org/jetty/configure.dtd";>

<Configure class="org.eclipse.jetty.webapp.WebAppContext">

  <Set name="contextPath">/</Set>
  <Set name="war">current.war</Set>

  <Set name="securityHandler">
    <New class="org.eclipse.jetty.security.ConstraintSecurityHandler">
      <Set name="sessionRenewedOnAuthentication">false</Set>
    </New>
  </Set>

  <Call id="sh" name="getSessionHandler">
    <Set name="sessionCache">
      <New class="org.eclipse.jetty.server.session.DefaultSessionCache">
        <Arg><Ref id="sh"/></Arg>
        <Set name="sessionDataStore">
           <New class="org.eclipse.jetty.redis.session.RedisSessionDataMap">
            <Arg>localhost</Arg>
            <Arg>6379</Arg>
            <Set name="database">0</Set>
            <Set name="expirySec">0</Set>
            <Set name="keyPrefix">session:</Set>
           </New>
        </Set>
      </New>
    </Set>
  </Call>

</Configure>

I downloaded jetty-redis-sessions and modified RedisSessionDataMap see
attachment. I built the jetty-redis-sessions jar and included it in my lib
directory. In the constructor I logged the Host and port to verify the
constructor is called,...

Attachment: RedisSessionDataMap.java
Description: Binary data

_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-users

Reply via email to