Hello,

I am not sure if this is the correct place to ask this question, but I have
hit a roadblock trying to implement a hello world Embedded Jetty project
(using Jetty 9.3.6v20151106) with a servlet that looks at the session. When
my code runs, I am not able to see the session or store any cookies. I have
reviewed all the embedded Jetty examples and looked at stackoverflow's
discussions, but I can't see an obvious reason for it not to work. Am I
missing some configuration?
                                                                                
                                                              
 Here is my HelloWorld.java class:                                              
                                                              
                                                                                
                                                              
                                                                                
                                                              
 package com.my.company;                                                        
                                                              
                                                                                
                                                              
 import org.eclipse.jetty.server.HttpConfiguration;                             
                                                              
 import org.eclipse.jetty.server.HttpConnectionFactory;                         
                                                              
 import org.eclipse.jetty.server.Server;                                        
                                                              
 import org.eclipse.jetty.server.ServerConnector;                               
                                                              
 import org.eclipse.jetty.server.SessionManager;                                
                                                              
 import org.eclipse.jetty.server.handler.ContextHandlerCollection;              
                                                              
 import org.eclipse.jetty.server.session.HashSessionIdManager;                  
                                                              
 import org.eclipse.jetty.server.session.HashSessionManager;                    
                                                              
 import org.eclipse.jetty.server.session.SessionHandler;                        
                                                              
 import org.eclipse.jetty.servlet.ServletContextHandler;                        
                                                              
 import org.eclipse.jetty.servlet.ServletHandler;                               
                                                              
 import org.eclipse.jetty.servlet.ServletHolder;                                
                                                              
                                                                                
                                                              
 public class HelloWorld {                                                      
                                                              
                                                                                
                                                              
 public static void main(String[] args) throws Exception {                      
                                                              
     //Create the server                                                        
                                                              
     Server server = new Server();                                              
                                                            
                                                                                
                                                              
     // Configure for Http                                                      
                                                              
     HttpConfiguration http_config = new HttpConfiguration();                   
                                                            
     http_config.setSecureScheme("https");                                      
                                                              
     http_config.setSecurePort(8443);                                           
                                                              
     http_config.setOutputBufferSize(32768);                                    
                                                              
                                                                                
                                                              
     ServerConnector http = new ServerConnector(server,                         
                                                            
             new HttpConnectionFactory(http_config));                           
                                                              
     int http_port = 12043;                                                     
                                                            
     http.setPort(http_port);                                                   
                                                              
     http.setIdleTimeout(30000);                                                
                                                              
     server.addConnector(http);                                                 
                                                              
                                                                                
                                                              
     //Add ServletContextHandler                                                
                                                              
     ServletContextHandler servletContextHandler = new ServletContextHandler(   
                                                            
             ServletContextHandler.SESSIONS);                                   
                                                              
     servletContextHandler.setContextPath("/");                                 
                                                              
                                                                                
                                                              
     SessionManager sessionManager = new HashSessionManager();                  
                                                            
     sessionManager.setMaxInactiveInterval(60 * 15); //session time out of 15 
minutes                                                         
     HashSessionIdManager idManager = new HashSessionIdManager();               
                                                            
     sessionManager.getSessionCookieConfig().setName("JSESSIONID_" + 
Integer.toString(http_port));                                            
     sessionManager.setSessionIdManager(idManager);                             
                                                              
     server.setSessionIdManager(idManager);                                     
                                                              
     SessionHandler sessionHandler = new SessionHandler(sessionManager);        
                                                            
     servletContextHandler.setSessionHandler(sessionHandler);                   
                                                              
     server.setHandler(servletContextHandler);                                  
                                                              
                                                                                
                                                              
     //Add BaseServlet                                                          
                                                              
     ServletHolder holder = new ServletHolder(new BaseServlet());               
                                                            
     servletContextHandler.addServlet(holder, "/*");                            
                                                              
                                                                                
                                                              
     //Start the server                                                         
                                                              
     server.start();                                                            
                                                              
     System.out.println("SERVER DUMP AFTER START" + server.dump());             
                                                              
                                                                                
                                                              
     // The use of server.join() the will make the current thread join and      
                                                              
     // wait until the server is done executing.                                
                                                              
     // See 
http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#join()           
                                                  
     server.join();                                                             
                                                              
   }                                                                            
                                                              
 }                                                                              
                                                              
                                                                                
                                                              
                                                                                
                                                              
 Here is my BaseServlet.java class:                                             
                                                              
                                                                                
                                                              
                                                                                
                                                              
 package com.my.company;                                                        
                                                              
                                                                                
                                                              
 import java.io.IOException;                                                    
                                                              
 import java.io.PrintWriter;                                                    
                                                              
 import java.util.Date;                                                         
                                                              
                                                                                
                                                              
 import javax.servlet.http.HttpServlet;                                         
                                                              
 import javax.servlet.http.HttpServletRequest;                                  
                                                              
 import javax.servlet.http.HttpServletResponse;                                 
                                                              
 import javax.servlet.http.HttpSession;                                         
                                                              
                                                                                
                                                              
 public class BaseServlet extends HttpServlet {                                 
                                                              
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws 
IOException {                                                  
     boolean create = "true".equals(req.getParameter("create"));                
                                                            
                                                                                
                                                              
     HttpSession session = req.getSession(create);                              
                                                            
     if (create) {                                                              
                                                              
         session.setAttribute("created", new Date());                           
                                                              
     }                                                                          
                                                              
                                                                                
                                                              
     PrintWriter pw = new PrintWriter(resp.getOutputStream());                  
                                                            
     pw.println("Create = " + create);                                          
                                                            
     if (session == null) {                                                     
                                                          
         pw.println("no session");                                              
                                                              
     } else {                                                                   
                                                              
         pw.println("Session = " + session.getId());                            
                                                            
         pw.println("Created = " + session.getAttribute("created"));            
                                                            
     }                                                                          
                                                              
                                                                                
                                                              
     pw.flush();                                                                
                                                              
    }                                                                           
                                                              
 }                                                                              
                                                              
                                                                                
                                                              
                                                                                
                                                              
 Here is my pom.xml file:                                                       
                                                              
                                                                                
                                                              
                                                                                
                                                              
 <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";                           
      
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>                                   
     
 <modelVersion>4.0.0</modelVersion>                                             
                                                              
 <groupId>EmbeddJettyHelloWorld</groupId>                                       
                                                              
 <artifactId>EmbeddJettyHelloWorld</artifactId>                                 
                                                              
 <version>0.0.1-SNAPSHOT</version>                                              
                                                              
 <name>EmbeddJettyHelloWorld</name>                                             
                                                              
                                                                                
                                                              
 <build>                                                                        
                                                              
     <plugins>                                                                  
                                                              
         <plugin>                                                               
                                                              
             <groupId>org.codehaus.mojo</groupId>                               
                                                              
             <artifactId>exec-maven-plugin</artifactId>                         
                                                              
             <version>1.4.0</version>                                           
                                                              
             <executions>                                                       
                                                              
                 <execution>                                                    
                                                              
                     <goals>                                                    
                                                              
                         <goal>java</goal>                                      
                                                              
                     </goals>                                                   
                                                              
                 </execution>                                                   
                                                              
             </executions>                                                      
                                                              
             <configuration>                                                    
                                                              
                 <mainClass>com.my.company.HelloWorld</mainClass>               
                                                              
                 <classpathScope>test</classpathScope>                          
                                                              
                 <systemProperties>                                             
                                                              
                     <property>                                                 
                                                              
                         <key>basedir</key>                                     
                                                              
                         <value>${basedir}</value>                              
                                                              
                     </property>                                                
                                                              
                 </systemProperties>                                            
                                                              
             </configuration>                                                   
                                                              
         </plugin>                                                              
                                                              
                                                                                
                                                              
         <plugin>                                                               
                                                              
             <groupId>org.eclipse.jetty</groupId>                               
                                                              
             <artifactId>jetty-maven-plugin</artifactId>                        
                                                              
             <version>${jetty-version}</version>                                
                                                              
             <configuration>                                                    
                                                              
                 <webAppConfig>                                                 
                                                              
                     <contextPath>/</contextPath>                               
                                                              
                 </webAppConfig>                                                
                                                              
                 
<webAppSourceDirectory>target/${project.artifactId}-${project.version}</webAppSourceDirectory>
                               
                 
<webDefaultXml>${project.basedir}/conf/jetty/webdefault.xml</webDefaultXml>     
                                             
             </configuration>                                                   
                                                              
         </plugin>                                                              
                                                              
     </plugins>                                                                 
                                                              
 </build>                                                                       
                                                              
 <dependencies>                                                                 
                                                              
     <dependency>                                                               
                                                              
         <groupId>org.eclipse.jetty</groupId>                                   
                                                              
         <artifactId>jetty-server</artifactId>                                  
                                                              
         <version>${jetty-version}</version>                                    
                                                              
     </dependency>                                                              
                                                              
     <dependency>                                                               
                                                              
         <groupId>org.eclipse.jetty</groupId>                                   
                                                              
         <artifactId>jetty-servlet</artifactId>                                 
                                                              
         <version>${jetty-version}</version>                                    
                                                              
     </dependency>                                                              
                                                              
 </dependencies>                                                                
                                                              
                                                                                
                                                              
 <properties>                                                                   
                                                              
     <jetty-version>9.3.6.v20151106</jetty-version>                             
                                                              
 </properties>                                                                  
                                                              
                                                                                
                                                              
                                                                                
                                                              
 Here is the output of the server dump:                                         
                                                              
                                                                                
                                                              
                                                                                
                                                              
     SERVER DUMP AFTER STARTorg.eclipse.jetty.server.Server@71f2a7d5 - STARTED  
                                                              
      += qtp1149319664{STARTED,8<=8<=200,i=5,q=0} - STARTED                     
                                                    
      |   +- 15 qtp1149319664-15 TIMED_WAITING @ sun.misc.Unsafe.park(Native 
Method) IDLE                                                     
      |   +- 13 qtp1149319664-13-acceptor-0@4c170d5c-ServerConnector@326de728   
 {HTTP/1.1,[http/1.1]}{0.0.0.0:12043} RUNNABLE @              
 sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) prio=3               
                                                            
      |   +- 14 qtp1149319664-14 RUNNABLE @ 
sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)                 
                  
      |   +- 12 qtp1149319664-12 TIMED_WAITING @ sun.misc.Unsafe.park(Native 
Method) IDLE                                                     
      |   +- 18 qtp1149319664-18 TIMED_WAITING @ sun.misc.Unsafe.park(Native 
Method) IDLE                                                     
      |   +- 16 qtp1149319664-16 TIMED_WAITING @ sun.misc.Unsafe.park(Native 
Method) IDLE                                                     
      |   +- 11 qtp1149319664-11 RUNNABLE @ 
sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)                 
                  
      |   +- 17 qtp1149319664-17 TIMED_WAITING @ sun.misc.Unsafe.park(Native 
Method) IDLE                                                     
      += ServerConnector@326de728{HTTP/1.1,[http/1.1]}{0.0.0.0:12043} - STARTED 
                                                            
      |   +~ org.eclipse.jetty.server.Server@71f2a7d5 - STARTED                 
                                                              
      |   +~ qtp1149319664{STARTED,8<=8<=200,i=5,q=0} - STARTED                 
                                                      
      |   += org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@1a6c5a9e 
- STARTED                                                    
      |   +- org.eclipse.jetty.io.ArrayByteBufferPool@2cfb4a64                  
                                                              
      |   += HttpConnectionFactory@20ad9418[HTTP/1.1] - STARTED                 
                                                            
      |   |   +- 
HttpConfiguration@5474c6c{32768/8192,8192/8192,https://:8443,[]}                
                                             
      |   += 
org.eclipse.jetty.server.ServerConnector$ServerConnectorManager@4b6995df - 
STARTED                                             
      |   |   +- org.eclipse.jetty.io.ManagedSelector@34033bd0 id=0 keys=0 
selected=0 id=0                                            
      |   |   |   +- sun.nio.ch.WindowsSelectorImpl@5200a403 keys=0             
                                                            
      |   |   +- org.eclipse.jetty.io.ManagedSelector@3aa9e816 id=1 keys=0 
selected=0 id=1                                            
      |   |       +- sun.nio.ch.WindowsSelectorImpl@33c7bf keys=0               
                                                            
      |   +- sun.nio.ch.ServerSocketChannelImpl[/0:0:0:0:0:0:0:0:12043]         
                                                              
      |   +- 
qtp1149319664-13-acceptor-0@4c170d5c-ServerConnector@326de728{HTTP/1.1,[http/1.1]}{0.0.0.0:12043}
                                
  += org.eclipse.jetty.server.session.HashSessionIdManager@17d99928 - STARTED   
                                                            
  += o.e.j.s.ServletContextHandler@2e5c649{/,null,AVAILABLE} - STARTED          
                                                            
      |   += org.eclipse.jetty.server.session.SessionHandler@6fffcba5 - STARTED 
                                                            
      |   |   += org.eclipse.jetty.server.session.HashSessionManager@9e89d68 - 
STARTED                                                      
      |   |   |   +~ 
org.eclipse.jetty.server.session.HashSessionIdManager@17d99928 - STARTED        
                                         
      |   |   |   += 
org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@34340fab - STARTED     
                                       
      |   |   |       +- sun.misc.Unsafe.park(Native Method)                    
                                                              
      |   |   |       +- 
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)          
                                     
      |   |   |       +- 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
      |   |   |       +- 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
                
      |   |   |       +- 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
         
      |   |   |       +- 
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)   
                                     
      |   |   |       +- 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127) 
                                     
      |   |   |       +- 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
                                     
      |   |   |       +- java.lang.Thread.run(Thread.java:745)                  
                                                              
      |   |   += org.eclipse.jetty.servlet.ServletHandler@2aafb23c - STARTED    
                                                            
      |   |       += 
com.rtn.iaf.BaseServlet-484b61fc@3334c9b2==com.rtn.iaf.BaseServlet,-1,true - 
STARTED                               
      |   |       +- [/*]=>com.rtn.iaf.BaseServlet-484b61fc                     
                                                            
      |   |       += 
org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-7a7b0070@1d1bf782==org.eclipse.jetty.servlet.ServletHandler
 $Default404Servlet,-1,false - STARTED                                          
                                                              
      |   |       +- 
[/]=>org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-7a7b0070        
                                       
      |   |                                                                     
                                                              
      |   +> No ClassLoader                                                     
                                                              
      |   +> Handler attributes 
o.e.j.s.ServletContextHandler@2e5c649{/,null,AVAILABLE}                         
                              
      |   |   +- 
org.eclipse.jetty.server.Executor=qtp1149319664{STARTED,8<=8<=200,i=5,q=0}      
                                   
      |   +> Context attributes 
o.e.j.s.ServletContextHandler@2e5c649{/,null,AVAILABLE}                         
                              
      |   |   +-     
org.eclipse.jetty.util.DecoratedObjectFactory=org.eclipse.jetty.util.DecoratedObjectFactory[decorators=0]
            
      |   +> Initparams o.e.j.s.ServletContextHandler@2e5c649{/,null,AVAILABLE} 
                                                              
      |                                                                         
                                                              
      +> sun.misc.Launcher$AppClassLoader@73d16e93                              
                                                              
        +- 
file:/C:/Users/myUser/tutorialAndDemo_workspace/EmbeddJettyHelloWorld/target/classes/
                                              
        +-                                                                      
                                                              
 
file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/eclipse/jetty/jetty-server/9.3.6.v20151106/jetty-server-9.3.6.v20151106.jar
        +- 
file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar
  
        +-                                                                      
                                                              
 
file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/eclipse/jetty/jetty-http/9.3.6.v20151106/jetty-http-9.3.6.v20151106.jar
  
        +-                                                                      
                                                              
 
file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/eclipse/jetty/jetty-util/9.3.6.v20151106/jetty-util-9.3.6.v20151106.jar
  
        +- 
file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/eclipse/jetty/jetty-io/9.3.6.v20151106/jetty-io-9.3.6.v20151106.jar
        +-                                                                      
                                                              
 
file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/eclipse/jetty/jetty-servlet/9.3.6.v20151106/jetty-servlet-9.3.6.v20151106.jar
        +-                                                                      
                                                              
 
file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/eclipse/jetty/jetty-security/9.3.6.v20151106/jetty-security-9.3.6.v20151106.jar
        +- sun.misc.Launcher$ExtClassLoader@2b80d80f                            
                                                              
                                                                                
                                                              



                                                                       
                                                                       
                                                                       


Thank you,

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

Reply via email to