Hi, nice to see, that there are some solutions for using wicket in a cloud. I will have a look on this.
If you are using spring with wicket you should also have a look on https://github.com/spring-projects/spring-session . This project also have a RedisSession handling for various app-serveres. Also Wicketstuff has some libs for storing the pages in other datastores like redis (or memcached, or others). I'm using this in cloud-foundry also without sticky-session, but with stateful wicketpages. Martin Am 18.02.2015 um 18:28 schrieb Bryan Holladay: > As I mentioned, I felt my first iteration was more of a proof of concept > since it relied on IP addresses. I've just committed an update that shows > how to fully rely on the session id across all servers in wicket. It uses a > custom persistent manager store for tomcat to keep track of the session > ids. The instructions are in the README file. > > https://github.com/baholladay/WicketRedisSession > > Hopefully this will save some people many hours of work! > > -Bryan > > On Tue, Feb 10, 2015 at 2:14 PM, Tobias Soloschenko < > tobiassolosche...@googlemail.com> wrote: > >> Hi, >> >> thanks a lot! Good to know where to look for such an implementation! >> >> kind regards >> >> Tobias >> >>> Am 10.02.2015 um 19:40 schrieb Bryan Holladay <holla...@longsight.com>: >>> >>> I love open source projects (Sakai guy here) and this ended up being >> pretty >>> simple code. I've created a GitHub project to share the code: >>> https://github.com/baholladay/WicketRedisSession >>> >>> It essentially is a passthrough to storing data on Redis. It relies on >> the >>> Jedis library (dependency below) and you simply add the following lines >> to >>> your Application#init method: >>> >>> setSessionStoreProvider(new RedisSessionStoreProvider()); >>> setPageManagerProvider(new RedisPageManagerProvider(this)); >>> >>> pom.xml: >>> <dependency> >>> <groupId>redis.clients</groupId> >>> <artifactId>jedis</artifactId> >>> <version>2.6.1</version> >>> <type>jar</type> >>> <scope>compile</scope> >>> </dependency> >>> >>> I've tested this with ElasticLoadBalancer set to non-sticky sessions and >>> Redis on 3 AWS tomcat nodes and it worked perfectly. Every request went >> to >>> a different server and never had any issues. I use a lot of ajax >> components >>> and have several nested pages and workflows too. Right now I consider >> this >>> still a proof of concept because I had to rely on the IP address as the >>> session ID. I prefer to use JSESSIONID and will look into fixing this >>> (please make a pull request if you have a solution). I think this has to >> do >>> with the fact that I do not rely on cookies in any situation since IE and >>> Safari doesn' play nicely with IFrames and cross domains. I've have >>> "getResourceSettings().setEncodeJSessionId(true);" set, it's not that. >>> >>> Thanks, >>> Bryan >>> >>> On Tue, Feb 10, 2015 at 4:00 AM, Martijn Dashorst < >>> martijn.dasho...@gmail.com> wrote: >>> >>>> I'm looking forward to hear more about this setup. It was my >>>> understanding that Wicket can't run in a non-sticky cluster setup due >>>> to the required pagemap locks to avoid concurrent updates to the >>>> component hierarchy. But I'd be very happy to hear my understanding >>>> being disproved. >>>> >>>> Martijn >>>> >>>> >>>> >>>> On Tue, Feb 10, 2015 at 2:51 AM, Bryan Holladay <holla...@longsight.com >>>> wrote: >>>>> Thank you Martin! I was able to get it to work really simply with >> setting >>>>> the following in my WebApplication: >>>>> >>>>> setSessionStoreProvider >>>>> setPageManagerProvider >>>>> >>>>> The implementations just passively passed and retrieved the data to and >>>>> from my Redis server. >>>>> >>>>> Thanks, >>>>> Bryan >>>>> >>>>> >>>>> >>>>> On Mon, Feb 9, 2015 at 3:32 PM, Martin Grigorov <mgrigo...@apache.org> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> Since I while I want to create an integration with >>>>>> https://github.com/spring-projects/spring-session but I haven't had >> the >>>>>> time (and demand). >>>>>> The way to do it is to create custom impl of ISessionStore interface. >>>>>> >>>>>> Otherwise I remember a user in the community successfully using >>>> distributed >>>>>> sessions with Jetty's JDBC session manager ( >> http://www.eclipse.org/jetty/documentation/current/session-clustering-jdbc.html >>>>>> ). >>>>>> >>>>>> Martin Grigorov >>>>>> Wicket Training and Consulting >>>>>> https://twitter.com/mtgrigorov >>>>>> >>>>>> On Mon, Feb 9, 2015 at 7:51 PM, Bryan Holladay < >> holla...@longsight.com> >>>>>> wrote: >>>>>> >>>>>>> Has anyone setup wicket's AuthenticatedWebApplication sessions to use >>>> a >>>>>>> distributed memory cache (e.g. memcached, redis)? I would like to >> make >>>>>> the >>>>>>> sticky sessions fail over to other tomcat's and allow non sticky load >>>>>>> balancers. >>>>>>> >>>>>>> For example, I tested with >>>>>>> https://github.com/magro/memcached-session-manager on tomcat 7 with >>>>>>> memcached and both ELB and NGINX and it seems to not work with >>>> Wicket. I >>>>>>> also tested with redis by implementing >>>>>>> AuthenticatedWebApplication#fetchCreateAndSetSession. >>>>>>> >>>>>>> Thanks, >>>>>>> Bryan >>>> >>>> >>>> -- >>>> Become a Wicket expert, learn from the best: http://wicketinaction.com >>>>