I had a quick play around and I can confirm sessions are working for me.
I'm running CXF 3.1.5 in Jboss Fuse. Have you checked that the client
you're using has sessions enabled?

The code that I used is below:

== Spring config ==

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xmlns:httpj="
http://cxf.apache.org/transports/http-jetty/configuration";
       xmlns:jaxrs="http://cxf.apache.org/jaxrs";
       xmlns="http://www.springframework.org/schema/beans";
       xmlns:http="http://cxf.apache.org/transports/http/configuration";
       xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
                  http://cxf.apache.org/transports/http/configuration
              http://cxf.apache.org/schemas/configuration/http-conf.xsd
        http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
        http://cxf.apache.org/transports/http-jetty/configuration
http://cxf.apache.org/schemas/configuration/http-jetty.xsd";>

    <import resource="classpath:META-INF/cxf/cxf.xml" />

    <httpj:engine-factory bus="cxf" id="my-engine">
        <httpj:engine port="8686">
            <httpj:sessionSupport>true</httpj:sessionSupport>
        </httpj:engine>
    </httpj:engine-factory>

    <bean id="testBean" class="testing.Service" />

    <jaxrs:server id="cxfJaxrsServer" address="http://0.0.0.0:8686/test";
depends-on="my-engine">
        <jaxrs:providers>
            <bean
class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider" />
        </jaxrs:providers>
        <jaxrs:serviceBeans>
            <ref bean="customerBean" />
        </jaxrs:serviceBeans>
    </jaxrs:server>

</beans>

 == Sample service ==

@Path("/service")
public class Service
{

    @Context
    private HttpServletRequest httpRequest;

    @Path("/set")
    @GET
    @Consumes(MediaType.TEXT_PLAIN)
    @Produces(MediaType.TEXT_PLAIN)
    public String test()
    {
        httpRequest.getSession().setAttribute("test", "test value");
        return "bundle2";
    }

    @Path("/get")
    @GET
    @Consumes(MediaType.TEXT_PLAIN)
    @Produces(MediaType.TEXT_PLAIN)
    public String test2()
    {
        return (String)httpRequest.getSession().getAttribute("test");
    }
}

== CXF dependencies ==
cxf-rt-frontend-jaxrs, cxf-rt-transports-http-jetty,
cxf-rt-rs-extension-providers

Cheers
Andrew

Reply via email to