Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 325184

Summary: SessionManager not set on HttpContext
Product: [RT] Jetty Reporter: Simon Kaegi <simon_kaegi>
Component: osgiAssignee: Jesse McConnell <jesse.mcconnell>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: gregw, hmalphettes, jetty-inbox, vijay.sundaram
Version: 7.1.5   
Target Milestone: 7.1.x   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Simon Kaegi CLA 2010-09-13 20:50:07 EDT
This is the text of a message we got on the equinox-dev mailing list from Vijay Sundaram. Looking at the stack it looks to me like a sessionhandler is not getting set on the HttpContext in the Jetty 7 implementation.

--
I am embedding Jetty in Equinox and am struggling to get JSPs to work.  Note, I am trying to implement this using the extension registry (e.g. plugin.xml).  I have read a handful of threads on this topic but have had no luck tracking down the specific issue I have:

The JSP engine is able to receive my HTTP request, parse the parameters, etc., but it breaks at the point where it tries to initialize session objects for the page.  The stack trace indicates there is no SessionManager, which obviously presents an issue.  Am I incorrectly configuring the JspServlet / Equinox environment somehow, or is this potentially a Jetty-level issue (in which case I can redirect this question)?

I have included the stack trace below and am happy to send over more context based on what would be helpful.  I am new to the OSGi/Equinox world and would appreciate any pointers to help me uncover any unknown unknowns I may be dealing with.

Thanks in advance,
Vijay

11:13:41.346 [qtp11652231-28 - /alpha/index.jsp?foo=bar] DEBUG org.eclipse.jetty.util.log - REQUEST /alpha/index.jsp on org.eclipse.jetty.server.nio.SelectChannelConnector$2@19cc1b
11:13:41.347 [qtp11652231-28 - /alpha/index.jsp?foo=bar] DEBUG org.eclipse.jetty.util.log - servlet=org.eclipse.jetty.osgi.httpservice.HttpServiceServletX-11666258
11:13:41.347 [qtp11652231-28 - /alpha/index.jsp?foo=bar] DEBUG org.eclipse.jetty.util.log - servlet holder=
11:13:41.347 [qtp11652231-28 - /alpha/index.jsp?foo=bar] DEBUG org.eclipse.jetty.util.log - chain=
11:13:41.347 [qtp11652231-28 - /alpha/index.jsp?foo=bar] DEBUG org.apache.jasper.servlet.JspServlet - JspEngine --> /alpha/index.jsp
11:13:41.347 [qtp11652231-28 - /alpha/index.jsp?foo=bar] DEBUG org.apache.jasper.servlet.JspServlet -       ServletPath: /alpha/index.jsp
11:13:41.348 [qtp11652231-28 - /alpha/index.jsp?foo=bar] DEBUG org.apache.jasper.servlet.JspServlet -          PathInfo: null
11:13:41.348 [qtp11652231-28 - /alpha/index.jsp?foo=bar] DEBUG org.apache.jasper.servlet.JspServlet -          RealPath: null
11:13:41.348 [qtp11652231-28 - /alpha/index.jsp?foo=bar] DEBUG org.apache.jasper.servlet.JspServlet -        RequestURI: /alpha/index.jsp
11:13:41.348 [qtp11652231-28 - /alpha/index.jsp?foo=bar] DEBUG org.apache.jasper.servlet.JspServlet -       QueryString: foo=bar
11:13:41.348 [qtp11652231-28 - /alpha/index.jsp?foo=bar] DEBUG org.apache.jasper.servlet.JspServlet -    Request Params: 
11:13:41.379 [qtp11652231-28 - /alpha/index.jsp?foo=bar] DEBUG org.apache.jasper.servlet.JspServlet -   foo = bar
11:13:41.382 [qtp11652231-28 - /alpha/index.jsp?foo=bar] ERROR o.a.jasper.runtime.JspFactoryImpl - Exception initializing page context
java.lang.IllegalStateException: No SessionManager
at org.eclipse.jetty.server.Request.getSession(Request.java:1097) ~[na:na]
at org.eclipse.jetty.server.Request.getSession(Request.java:1087) ~[na:na]
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:235) ~[javax.servlet_2.5.0.v200910301333.jar:na]
at org.eclipse.equinox.http.servlet.internal.HttpServletRequestAdaptor.getSession(HttpServletRequestAdaptor.java:138) ~[na:na]
at org.apache.jasper.runtime.PageContextImpl._initialize(PageContextImpl.java:148) ~[org.apache.jasper_5.5.17.v201004212143.jar:na]
at org.apache.jasper.runtime.PageContextImpl.initialize(PageContextImpl.java:123) ~[org.apache.jasper_5.5.17.v201004212143.jar:na]
at org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:104) [org.apache.jasper_5.5.17.v201004212143.jar:na]
at org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:61) [org.apache.jasper_5.5.17.v201004212143.jar:na]
at org.apache.jsp.alpha.index_jsp._jspService(index_jsp.java:33) [Temp/:na]
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) [org.apache.jasper_5.5.17.v201004212143.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [javax.servlet_2.5.0.v200910301333.jar:na]
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) [org.apache.jasper_5.5.17.v201004212143.jar:na]
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) [org.apache.jasper_5.5.17.v201004212143.jar:na]
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) [org.apache.jasper_5.5.17.v201004212143.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [javax.servlet_2.5.0.v200910301333.jar:na]
at org.eclipse.equinox.jsp.jasper.JspServlet.service(JspServlet.java:112) [org.eclipse.equinox.jsp.jasper_1.0.200.v20100421.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [javax.servlet_2.5.0.v200910301333.jar:na]
at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180) [org.eclipse.equinox.http.registry_1.1.0.v20100503.jar:na]
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61) [org.eclipse.equinox.http.servlet_1.1.0.v20100503.jar:na]
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126) [org.eclipse.equinox.http.servlet_1.1.0.v20100503.jar:na]
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68) [org.eclipse.equinox.http.servlet_1.1.0.v20100503.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [javax.servlet_2.5.0.v200910301333.jar:na]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527) [org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:423) [org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358) [org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:866) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.server.Server.handle(Server.java:347) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1042) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:549) [org.eclipse.jetty.http_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211) [org.eclipse.jetty.http_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:506) [org.eclipse.jetty.io_7.1.6.v20100715.jar:7.1.6.v20100715]
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) [org.eclipse.jetty.util_7.1.6.v20100715.jar:7.1.6.v20100715]
at java.lang.Thread.run(Unknown Source) [na:1.6.0_21
--
Comment 1 Greg Wilkins CLA 2010-09-13 21:01:02 EDT
The issue appears to be that there is no SessionHandler in the calling chain.

Typically you will have  ContextHandler(or ServletContextHandler or WebAppContext) wrapping a SessionHandler, wrapping a SecurityHandler, wrapping the ServletHandler.

In this case, it looks like there is just a ContextHandler wrapping a ServletHandler - thus the session will always be null.
Comment 2 Vijay CLA 2010-09-14 13:39:25 EDT
(In reply to comment #1)
> The issue appears to be that there is no SessionHandler in the calling chain.
> 
> Typically you will have  ContextHandler(or ServletContextHandler or
> WebAppContext) wrapping a SessionHandler, wrapping a SecurityHandler, wrapping
> the ServletHandler.
> 
> In this case, it looks like there is just a ContextHandler wrapping a
> ServletHandler - thus the session will always be null.

Is this a development / configuration issue on my end, or something internal to the Equinox / Jetty integration?  I'm not sure but I assume the latter--though it would be great if there was a quick fix I could apply on my own in the interim.

Thanks much!
Comment 3 Jesse McConnell CLA 2010-09-14 15:59:27 EDT
I am pretty sure this would be in the HttpService side of things in equinox...I know that hugues has been working on this fairly recently and I believe there should be something floating around for you..

I'll add him to this issue and flag him on irc when I see him
Comment 4 Hugues Malphettes CLA 2010-09-14 17:26:40 EDT
Assuming that Vijay is using org.eclipse.jetty.boot.osgi.httpservice to provide the HttpService, here is the context.xml file that configures the corresponding jetty servlet:

<Configure class="org.eclipse.jetty.servlet.ServletContextHandler">
<!-- this servlet provides the OSGi HTTP Service once it is initialized -->
  <Call name="addServlet">
    <Arg>org.eclipse.jetty.osgi.httpservice.HttpServiceServletX</Arg>
    <Arg>/*</Arg>
    <Set name="InitOrder">0</Set>
  </Call>
</Configure>

Where HttpServiceServletX extends org.eclipse.equinox.http.servlet.HttpServiceServlet adn in fact currently does nothing specific.

It sounds that we need a more sophisticated context handler and I'll review this with Jesse and Greg.
Comment 5 Greg Wilkins CLA 2010-09-14 18:44:27 EDT
The default constructor of ServletContextHandler does not create a session handler.  However if getSessionHandler is called on it before started, it will create one, or if one is set on it.

I could look at changing the default constructor,

or just add <Get name="SessionHandler" /> to the config.
Comment 6 Vijay CLA 2010-09-14 18:56:43 EDT
(In reply to comment #4)
> Assuming that Vijay is using org.eclipse.jetty.boot.osgi.httpservice to provide
> the HttpService, here is the context.xml file that configures the corresponding
> jetty servlet:
> 
> <Configure class="org.eclipse.jetty.servlet.ServletContextHandler">
> <!-- this servlet provides the OSGi HTTP Service once it is initialized -->
>   <Call name="addServlet">
>     <Arg>org.eclipse.jetty.osgi.httpservice.HttpServiceServletX</Arg>
>     <Arg>/*</Arg>
>     <Set name="InitOrder">0</Set>
>   </Call>
> </Configure>
> 
> Where HttpServiceServletX extends
> org.eclipse.equinox.http.servlet.HttpServiceServlet adn in fact currently does
> nothing specific.
> 
> It sounds that we need a more sophisticated context handler and I'll review
> this with Jesse and Greg.

Just to clarify, I am using org.eclipse.jetty.osgi.httpservice, but not org.eclipse.jetty.boot.osgi.httpservice (suspect this was a typo).

I did not have a pre-existing context.xml file in the jettyhome\contexts folder but created one with the contents you provided.

It still isn't working properly, though now I am also unable to access my test static resource (e.g. static files) in addition to my JSPs, as it looks like the Servlet is not being properly initialized.  Here is the new stack trace after attempting to access alpha/index.jsp and then install/test.html (below this I have also included the console print out of active OSGi bundles):

15:50:59.153 [Start Level Event Dispatcher] DEBUG org.eclipse.jetty.util.log - STARTED org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet-18372676
15:50:59.153 [Start Level Event Dispatcher] DEBUG org.eclipse.jetty.util.log - STARTED ServletContextHandler@110278e@110278e/,null
15:50:59.153 [Start Level Event Dispatcher] DEBUG org.eclipse.jetty.util.log - starting org.eclipse.jetty.server.Server@14b9a74
15:50:59.153 [Start Level Event Dispatcher] DEBUG org.eclipse.jetty.util.log - Starting SelectChannelConnector@0.0.0.0:80
15:50:59.153 [Start Level Event Dispatcher] DEBUG org.eclipse.jetty.util.log - Starting org.eclipse.jetty.server.nio.SelectChannelConnector$1@16b321b
15:50:59.154 [Start Level Event Dispatcher] DEBUG org.eclipse.jetty.util.log - STARTED org.eclipse.jetty.server.nio.SelectChannelConnector$1@16b321b
15:50:59.157 [Start Level Event Dispatcher] INFO  org.eclipse.jetty.util.log - Started SelectChannelConnector@0.0.0.0:80
15:50:59.157 [Start Level Event Dispatcher] DEBUG org.eclipse.jetty.util.log - STARTED SelectChannelConnector@0.0.0.0:80
org.eclipse.jetty.server.Server@14b9a74 STOPPED
 +-ServletContextHandler@110278e@110278e/,null started
    +-SessionHandler@100aff5 started
       +-ServletHandler@200db9 started
          +-[/*]=>org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet-18372676{service.description=Equinox Jetty-based Http Service, http.port=80, service.vendor=Eclipse.org}

15:50:59.157 [Start Level Event Dispatcher] DEBUG org.eclipse.jetty.util.log - STARTED org.eclipse.jetty.server.Server@14b9a74
15:51:07.986 [qtp20735553-27 - /alpha/index.jsp] DEBUG org.eclipse.jetty.util.log - REQUEST /alpha/index.jsp on org.eclipse.jetty.server.nio.SelectChannelConnector$2@10e7c9e
15:51:07.986 [qtp20735553-27 - /alpha/index.jsp] DEBUG org.eclipse.jetty.util.log - servlet=org.eclipse.jetty.osgi.httpservice.HttpServiceServletX-13754931
15:51:07.986 [qtp20735553-27 - /alpha/index.jsp] DEBUG org.eclipse.jetty.util.log - servlet holder=
15:51:07.986 [qtp20735553-27 - /alpha/index.jsp] DEBUG org.eclipse.jetty.util.log - chain=
15:51:07.987 [qtp20735553-27 - /alpha/index.jsp] DEBUG org.eclipse.jetty.util.log - EXCEPTION 
javax.servlet.UnavailableException: Servlet Not Initialized
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:498) ~[org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:423) [org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358) [org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:866) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.Server.handle(Server.java:347) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1042) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:549) [org.eclipse.jetty.http_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211) [org.eclipse.jetty.http_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:506) [org.eclipse.jetty.io_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) [org.eclipse.jetty.util_7.1.6.v20100715.jar:7.1.6.v20100715]
	at java.lang.Thread.run(Unknown Source) [na:1.6.0_21]
15:51:07.988 [qtp20735553-27 - /alpha/index.jsp] WARN  org.eclipse.jetty.util.log - /alpha/index.jsp
javax.servlet.UnavailableException: Servlet Not Initialized
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:498) ~[org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:423) [org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358) [org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:866) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.Server.handle(Server.java:347) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1042) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:549) [org.eclipse.jetty.http_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211) [org.eclipse.jetty.http_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:506) [org.eclipse.jetty.io_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) [org.eclipse.jetty.util_7.1.6.v20100715.jar:7.1.6.v20100715]
	at java.lang.Thread.run(Unknown Source) [na:1.6.0_21]
15:51:07.988 [qtp20735553-27 - /alpha/index.jsp] DEBUG org.eclipse.jetty.util.log - [GET /alpha/index.jsp]@1541717 org.eclipse.jetty.server.Request@178655
15:51:07.994 [qtp20735553-27 - /alpha/index.jsp] DEBUG org.eclipse.jetty.util.log - RESPONSE /alpha/index.jsp  404
15:51:11.714 [qtp20735553-29 - /install/test.html] DEBUG org.eclipse.jetty.util.log - REQUEST /install/test.html on org.eclipse.jetty.server.nio.SelectChannelConnector$2@14426a6
15:51:11.714 [qtp20735553-29 - /install/test.html] DEBUG org.eclipse.jetty.util.log - servlet=org.eclipse.jetty.osgi.httpservice.HttpServiceServletX-13754931
15:51:11.714 [qtp20735553-29 - /install/test.html] DEBUG org.eclipse.jetty.util.log - servlet holder=
15:51:11.714 [qtp20735553-29 - /install/test.html] DEBUG org.eclipse.jetty.util.log - chain=
15:51:11.715 [qtp20735553-29 - /install/test.html] DEBUG org.eclipse.jetty.util.log - EXCEPTION 
javax.servlet.UnavailableException: Servlet Not Initialized
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:498) ~[org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:423) [org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358) [org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:866) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.Server.handle(Server.java:347) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1042) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:549) [org.eclipse.jetty.http_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211) [org.eclipse.jetty.http_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:506) [org.eclipse.jetty.io_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) [org.eclipse.jetty.util_7.1.6.v20100715.jar:7.1.6.v20100715]
	at java.lang.Thread.run(Unknown Source) [na:1.6.0_21]
15:51:11.718 [qtp20735553-29 - /install/test.html] WARN  org.eclipse.jetty.util.log - /install/test.html
javax.servlet.UnavailableException: Servlet Not Initialized
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:498) ~[org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:423) [org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358) [org.eclipse.jetty.servlet_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:866) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.Server.handle(Server.java:347) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1042) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:549) [org.eclipse.jetty.http_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211) [org.eclipse.jetty.http_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424) [org.eclipse.jetty.server_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:506) [org.eclipse.jetty.io_7.1.6.v20100715.jar:7.1.6.v20100715]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) [org.eclipse.jetty.util_7.1.6.v20100715.jar:7.1.6.v20100715]
	at java.lang.Thread.run(Unknown Source) [na:1.6.0_21]
15:51:11.722 [qtp20735553-29 - /install/test.html] DEBUG org.eclipse.jetty.util.log - [GET /install/test.html]@21322992 org.eclipse.jetty.server.Request@1455cf0
15:51:11.724 [qtp20735553-29 - /install/test.html] DEBUG org.eclipse.jetty.util.log - RESPONSE /install/test.html  404

. . .

osgi> ss

Framework is launched.

id	State       Bundle
0	ACTIVE      org.eclipse.osgi_3.6.0.v20100517
	            Fragments=13
1	ACTIVE      org.eclipse.equinox.simpleconfigurator_1.0.200.v20100503
2	ACTIVE      ch.qos.logback.classic_0.9.19.v20100519-1505
3	ACTIVE      ch.qos.logback.core_0.9.19.v20100419-1216
4	RESOLVED    ch.qos.logback.slf4j_0.9.19.v20100519-1910
	            Master=97
6	ACTIVE      com.sun.el_1.0.0.v201004190952
7	ACTIVE      javax.activation_1.1.0.v201005080500
8	ACTIVE      javax.el_2.1.0.v201004190952
9	ACTIVE      javax.mail.glassfish_1.4.1.v201005082020
10	ACTIVE      javax.servlet_2.5.0.v200910301333
11	ACTIVE      javax.servlet.jsp_2.1.0.v201004190952
12	ACTIVE      javax.servlet.jsp.jstl_1.2.0.v201004190952
13	RESOLVED    javax.transaction_1.1.1.v201004190952
	            Master=0
14	ACTIVE      org.apache.commons.codec_1.3.0.v20100518-1140
15	ACTIVE      org.apache.commons.httpclient_3.1.0.v201005080502
16	ACTIVE      org.apache.commons.logging_1.0.4.v201005080501
17	ACTIVE      org.apache.jasper.glassfish_2.1.0.v201007080150
18	ACTIVE      org.apache.taglibs.standard.glassfish_1.2.0.v201004190952
20	ACTIVE      org.eclipse.core.contenttype_3.4.100.v20100505-1235
21	ACTIVE      org.eclipse.core.jobs_3.5.0.v20100515
22	ACTIVE      org.eclipse.core.runtime_3.6.0.v20100505
23	ACTIVE      org.eclipse.ecf_3.1.0.v20100529-0735
	            Fragments=30
24	ACTIVE      org.eclipse.ecf.filetransfer_4.0.0.v20100529-0735
25	ACTIVE      org.eclipse.ecf.identity_3.1.0.v20100529-0735
26	ACTIVE      org.eclipse.ecf.provider.filetransfer_3.1.0.v20100529-0735
	            Fragments=29
27	ACTIVE      org.eclipse.ecf.provider.filetransfer.httpclient_4.0.0.v20100529-0735
	            Fragments=28
28	RESOLVED    org.eclipse.ecf.provider.filetransfer.httpclient.ssl_1.0.0.v20100529-0735
	            Master=27
29	RESOLVED    org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20100529-0735
	            Master=26
30	RESOLVED    org.eclipse.ecf.ssl_1.0.0.v20100529-0735
	            Master=23
31	ACTIVE      org.eclipse.equinox.app_1.3.0.v20100512
32	ACTIVE      org.eclipse.equinox.common_3.6.0.v20100503
33	ACTIVE      org.eclipse.equinox.ds_1.2.0.v20100507
34	ACTIVE      org.eclipse.equinox.frameworkadmin_2.0.0.v20100503
35	ACTIVE      org.eclipse.equinox.frameworkadmin.equinox_1.0.200.v20100505
36	ACTIVE      org.eclipse.equinox.http.registry_1.1.0.v20100503
37	ACTIVE      org.eclipse.equinox.http.servlet_1.1.0.v20100503
38	ACTIVE      org.eclipse.equinox.launcher_1.1.0.v20100507
	            Fragments=39
39	RESOLVED    org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
	            Master=38
40	ACTIVE      org.eclipse.equinox.p2.artifact.repository_1.1.0.v20100513
41	ACTIVE      org.eclipse.equinox.p2.console_1.0.200.v20100601
42	ACTIVE      org.eclipse.equinox.p2.core_2.0.0.v20100510
43	ACTIVE      org.eclipse.equinox.p2.director_2.0.0.v20100525
44	ACTIVE      org.eclipse.equinox.p2.director.app_1.0.200.v20100527
45	ACTIVE      org.eclipse.equinox.p2.directorywatcher_1.0.200.v20100601
46	ACTIVE      org.eclipse.equinox.p2.engine_2.0.0.v20100606
47	ACTIVE      org.eclipse.equinox.p2.extensionlocation_1.2.0.v20100518
48	ACTIVE      org.eclipse.equinox.p2.garbagecollector_1.0.100.v20100503
49	ACTIVE      org.eclipse.equinox.p2.jarprocessor_1.0.200.v20100503a
50	ACTIVE      org.eclipse.equinox.p2.metadata_2.0.0.v20100601
51	ACTIVE      org.eclipse.equinox.p2.metadata.repository_1.1.0.v20100513
52	ACTIVE      org.eclipse.equinox.p2.operations_2.0.0.v20100510
53	ACTIVE      org.eclipse.equinox.p2.publisher_1.1.0.v20100513
54	ACTIVE      org.eclipse.equinox.p2.ql_2.0.0.v20100503a
55	ACTIVE      org.eclipse.equinox.p2.reconciler.dropins_1.1.0.v20100525
56	ACTIVE      org.eclipse.equinox.p2.repository_2.0.0.v20100519
57	ACTIVE      org.eclipse.equinox.p2.touchpoint.eclipse_2.0.0.v20100513
58	ACTIVE      org.eclipse.equinox.p2.touchpoint.natives_1.0.200.v20100503a
59	ACTIVE      org.eclipse.equinox.preferences_3.3.0.v20100503
60	ACTIVE      org.eclipse.equinox.registry_3.5.0.v20100503
61	ACTIVE      org.eclipse.equinox.security_1.0.200.v20100503
62	ACTIVE      org.eclipse.equinox.simpleconfigurator.manipulator_2.0.0.v20100503
63	ACTIVE      org.eclipse.equinox.util_1.0.200.v20100503
64	ACTIVE      org.eclipse.jdt.core.compiler.batch_3.6.0.I20100608-0911
65	ACTIVE      org.eclipse.jdt.junit.runtime_3.4.200.v20100526-0800
66	ACTIVE      org.eclipse.jetty.annotations_7.1.6.v20100715
67	ACTIVE      org.eclipse.jetty.client_7.1.6.v20100715
68	ACTIVE      org.eclipse.jetty.continuation_7.1.6.v20100715
69	ACTIVE      org.eclipse.jetty.deploy_7.1.6.v20100715
70	ACTIVE      org.eclipse.jetty.http_7.1.6.v20100715
71	ACTIVE      org.eclipse.jetty.io_7.1.6.v20100715
72	ACTIVE      org.eclipse.jetty.jmx_7.1.6.v20100715
73	ACTIVE      org.eclipse.jetty.jndi_7.1.6.v20100715
74	ACTIVE      org.eclipse.jetty.osgi.boot_7.1.6.v20100715
	            Fragments=75
75	RESOLVED    org.eclipse.jetty.osgi.boot.jsp_7.1.6.v20100715
	            Master=74
76	ACTIVE      org.eclipse.jetty.osgi.boot.warurl_7.1.6.v20100715
77	ACTIVE      org.eclipse.jetty.osgi.httpservice_7.1.6.v20100715
78	ACTIVE      org.eclipse.jetty.plus_7.1.6.v20100715
79	ACTIVE      org.eclipse.jetty.rewrite_7.1.6.v20100715
80	ACTIVE      org.eclipse.jetty.security_7.1.6.v20100715
81	ACTIVE      org.eclipse.jetty.server_7.1.6.v20100715
82	ACTIVE      org.eclipse.jetty.servlet_7.1.6.v20100715
83	ACTIVE      org.eclipse.jetty.servlets_7.1.6.v20100715
84	ACTIVE      org.eclipse.jetty.util_7.1.6.v20100715
85	ACTIVE      org.eclipse.jetty.webapp_7.1.6.v20100715
86	ACTIVE      org.eclipse.jetty.websocket_7.1.6.v20100715
87	ACTIVE      org.eclipse.jetty.xml_7.1.6.v20100715
88	ACTIVE      org.eclipse.osgi.services_3.2.100.v20100503
89	ACTIVE      org.eclipse.pde.junit.runtime_3.4.100.v20100601
90	ACTIVE      org.h2_1.2.142
91	ACTIVE      org.hamcrest.core_1.1.0.v20090501071000
92	ACTIVE      org.junit_4.8.1.v4_8_1_v20100427-1100
93	ACTIVE      org.objectweb.asm_3.2.0.v200909071300
94	ACTIVE      org.restlet_2.0.0.m7
95	ACTIVE      org.sat4j.core_2.2.0.v20100429
96	ACTIVE      org.sat4j.pb_2.2.0.v20100429
97	ACTIVE      org.slf4j.api_1.5.11.v20100519-1910
	            Fragments=4
98	ACTIVE      org.slf4j.jcl_1.5.11.v20100419-1106
99	ACTIVE      org.slf4j.jul_1.5.11.v20100419-1106
100	ACTIVE      org.slf4j.log4j_1.5.11.v20100419-1106
110	ACTIVE      org.eclipse.equinox.http.jetty_2.0.0.201009101625
112	ACTIVE      org.eclipse.equinox.jsp.jasper.registry_1.0.200.v20100503
113	ACTIVE      javax.servlet.jsp_2.0.0.v200806031607
114	ACTIVE      org.apache.commons.el_1.0.0.v201004212143
115	ACTIVE      org.apache.jasper_5.5.17.v201004212143
116	ACTIVE      org.eclipse.equinox.jsp.jasper_1.0.200.v20100421
118	ACTIVE      com.test.cloud_0.0.1.alpha
119	ACTIVE      org.eclipse.equinox.http.helper_1.0.0.201009121724
Comment 7 Vijay CLA 2010-09-14 19:15:31 EDT
(In reply to comment #5)
> The default constructor of ServletContextHandler does not create a session
> handler.  However if getSessionHandler is called on it before started, it will
> create one, or if one is set on it.
> 
> I could look at changing the default constructor,
> 
> or just add <Get name="SessionHandler" /> to the config.

I submitted my last comment and updated stack trace before I saw this input, but adding this to my config.xml does not change the outcome.  Perhaps it is a flow of control / order of operations issue when employing both plugin.xml on the Equinox end alongside config.xml on the embedded Jetty end?
Comment 8 Hugues Malphettes CLA 2010-09-14 19:29:45 EDT
(In reply to comment #7)
> (In reply to comment #5)
> > The default constructor of ServletContextHandler does not create a session
> > handler.  However if getSessionHandler is called on it before started, it will
> > create one, or if one is set on it.
> > 
> > I could look at changing the default constructor,
> > 
> > or just add <Get name="SessionHandler" /> to the config.
> 
> I submitted my last comment and updated stack trace before I saw this input,
> but adding this to my config.xml does not change the outcome.  Perhaps it is a
> flow of control / order of operations issue when employing both plugin.xml on
> the Equinox end alongside config.xml on the embedded Jetty end?

Hi Vijay,

Sorry for the typo. Indeed: org.eclipse.jetty.osgi.boot.httpservice is the bundle.
In fact the context.xml file is inside that bundle. It is located here: org.eclipse.jetty.osgi.boot.httpservice/contexts/httpservice.xml

You could import it in your workspace and edit the contexts/httpservice.xml file.

If you are trying this please let us know if it works for you.
I am going to test it on my side.
Thanks!
Comment 9 Vijay CLA 2010-09-14 20:03:32 EDT
(In reply to comment #8)
> (In reply to comment #7)
> > (In reply to comment #5)
> > > The default constructor of ServletContextHandler does not create a session
> > > handler.  However if getSessionHandler is called on it before started, it will
> > > create one, or if one is set on it.
> > > 
> > > I could look at changing the default constructor,
> > > 
> > > or just add <Get name="SessionHandler" /> to the config.
> > 
> > I submitted my last comment and updated stack trace before I saw this input,
> > but adding this to my config.xml does not change the outcome.  Perhaps it is a
> > flow of control / order of operations issue when employing both plugin.xml on
> > the Equinox end alongside config.xml on the embedded Jetty end?
> 
> Hi Vijay,
> 
> Sorry for the typo. Indeed: org.eclipse.jetty.osgi.boot.httpservice is the
> bundle.
> In fact the context.xml file is inside that bundle. It is located here:
> org.eclipse.jetty.osgi.boot.httpservice/contexts/httpservice.xml
> 
> You could import it in your workspace and edit the contexts/httpservice.xml
> file.
> 
> If you are trying this please let us know if it works for you.
> I am going to test it on my side.
> Thanks!

Got it.  As it turns out, the XML snippet you sent was already in this httpservice.xml file.  I updated this file with the added Get call to SessionHandler but it still resulted in a "No SessionManager" issue:

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<!--
 Copyright (c) 2009 Intalio, Inc.

 All rights reserved. This program and the accompanying materials
 are made available under the terms of the Eclipse Public License v1.0
 and Apache License v2.0 which accompanies this distribution.
 The Eclipse Public License is available at 
 http://www.eclipse.org/legal/epl-v10.html
 The Apache License v2.0 is available at
 http://www.opensource.org/licenses/apache2.0.php
 You may elect to redistribute this code under either of these licenses. 
 Contributors:
    Hugues Malphettes - initial API and implementation
-->
<Configure class="org.eclipse.jetty.servlet.ServletContextHandler">
<!-- this servlet provides the OSGi HTTP Service once it is initialized -->
  <Call name="addServlet">
    <Arg>org.eclipse.jetty.osgi.httpservice.HttpServiceServletX</Arg>
    <Arg>/*</Arg>
    <Set name="InitOrder">0</Set>
  </Call>
  <Get name="SessionHandler" />
</Configure>

However, this does explain why my last test resulted in the Servlet breaking altogether, since I was duplicating this configuration in both the httpservice bundle config and the embedded jettyhome config. 


<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<!--
 Copyright (c) 2009 Intalio, Inc.

 All rights reserved. This program and the accompanying materials
 are made available under the terms of the Eclipse Public License v1.0
 and Apache License v2.0 which accompanies this distribution.
 The Eclipse Public License is available at 
 http://www.eclipse.org/legal/epl-v10.html
 The Apache License v2.0 is available at
 http://www.opensource.org/licenses/apache2.0.php
 You may elect to redistribute this code under either of these licenses. 
 Contributors:
    Hugues Malphettes - initial API and implementation
-->
<Configure class="org.eclipse.jetty.servlet.ServletContextHandler">
<!-- this servlet provides the OSGi HTTP Service once it is initialized -->
  <Call name="addServlet">
    <Arg>org.eclipse.jetty.osgi.httpservice.HttpServiceServletX</Arg>
    <Arg>/*</Arg>
    <Set name="InitOrder">0</Set>
  </Call>
  <Get name="SessionHandler" />
</Configure>

(In reply to comment #8)
> (In reply to comment #7)
> > (In reply to comment #5)
> > > The default constructor of ServletContextHandler does not create a session
> > > handler.  However if getSessionHandler is called on it before started, it will
> > > create one, or if one is set on it.
> > > 
> > > I could look at changing the default constructor,
> > > 
> > > or just add <Get name="SessionHandler" /> to the config.
> > 
> > I submitted my last comment and updated stack trace before I saw this input,
> > but adding this to my config.xml does not change the outcome.  Perhaps it is a
> > flow of control / order of operations issue when employing both plugin.xml on
> > the Equinox end alongside config.xml on the embedded Jetty end?
> 
> Hi Vijay,
> 
> Sorry for the typo. Indeed: org.eclipse.jetty.osgi.boot.httpservice is the
> bundle.
> In fact the context.xml file is inside that bundle. It is located here:
> org.eclipse.jetty.osgi.boot.httpservice/contexts/httpservice.xml
> 
> You could import it in your workspace and edit the contexts/httpservice.xml
> file.
> 
> If you are trying this please let us know if it works for you.
> I am going to test it on my side.
> Thanks!
Comment 10 Vijay CLA 2010-09-14 20:13:12 EDT
(In reply to comment #8)
> (In reply to comment #7)
> > (In reply to comment #5)
> > > The default constructor of ServletContextHandler does not create a session
> > > handler.  However if getSessionHandler is called on it before started, it will
> > > create one, or if one is set on it.
> > > 
> > > I could look at changing the default constructor,
> > > 
> > > or just add <Get name="SessionHandler" /> to the config.
> > 
> > I submitted my last comment and updated stack trace before I saw this input,
> > but adding this to my config.xml does not change the outcome.  Perhaps it is a
> > flow of control / order of operations issue when employing both plugin.xml on
> > the Equinox end alongside config.xml on the embedded Jetty end?
> 
> Hi Vijay,
> 
> Sorry for the typo. Indeed: org.eclipse.jetty.osgi.boot.httpservice is the
> bundle.


I just re-read this and notice you are still referring to a different bundle (org.eclipse.jetty.osgi.boot.httpservice) than I am (org.eclipse.jetty.osgi.httpservice) :)  I assume you mean the latter...

> In fact the context.xml file is inside that bundle. It is located here:
> org.eclipse.jetty.osgi.boot.httpservice/contexts/httpservice.xml
> 
> You could import it in your workspace and edit the contexts/httpservice.xml
> file.
> 
> If you are trying this please let us know if it works for you.
> I am going to test it on my side.
> Thanks!
Comment 11 Greg Wilkins CLA 2010-09-14 20:21:21 EDT
Are sorry, my bad - the getSessionHandler will only work if the ServletContextHandler has been constructed with (1) passed in.

So another idea is to try to actually set the handler:

<Set name="SessionHandler"><New class="org.eclipse.jetty.servlet.session.SessionHandler"/></Set>

sorry no time to try this out myself.
Comment 12 Vijay CLA 2010-09-14 20:57:14 EDT
(In reply to comment #11)
> Are sorry, my bad - the getSessionHandler will only work if the
> ServletContextHandler has been constructed with (1) passed in.
> 
> So another idea is to try to actually set the handler:
> 
> <Set name="SessionHandler"><New
> class="org.eclipse.jetty.servlet.session.SessionHandler"/></Set>
> 
> sorry no time to try this out myself.

Setting the handler in httpservice.xml per your suggestion above solved the issue.  I've included the working XML below.  

Thanks for your help, and for all the great work with Jetty/Equinox!

. . .

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<!--
 Copyright (c) 2009 Intalio, Inc.

 All rights reserved. This program and the accompanying materials
 are made available under the terms of the Eclipse Public License v1.0
 and Apache License v2.0 which accompanies this distribution.
 The Eclipse Public License is available at 
 http://www.eclipse.org/legal/epl-v10.html
 The Apache License v2.0 is available at
 http://www.opensource.org/licenses/apache2.0.php
 You may elect to redistribute this code under either of these licenses. 
 Contributors:
    Hugues Malphettes - initial API and implementation
-->
<Configure class="org.eclipse.jetty.servlet.ServletContextHandler">
<!-- this servlet provides the OSGi HTTP Service once it is initialized -->
  <Call name="addServlet">
    <Arg>org.eclipse.jetty.osgi.httpservice.HttpServiceServletX</Arg>
    <Arg>/*</Arg>
    <Set name="InitOrder">0</Set>
  </Call>
  <Set name="SessionHandler">
    <New class="org.eclipse.jetty.server.session.SessionHandler"/>
  </Set>
</Configure>
Comment 13 Hugues Malphettes CLA 2010-09-14 21:07:17 EDT
Vijay, thanks for reporting it and thanks for testing it on your side.
Committed with revision 2277.