Swagger UI on Embedded Jetty Won't Display

1,593 views
Skip to first unread message

Jennifer Coston

unread,
May 17, 2016, 1:37:33 PM5/17/16
to Swagger
Hello,

I am trying to implement a swagger API with an embedded Jetty server and Jersey. I have added the Jetty server to my main class and from the debug statements it looks like everything is up and running. However, when I go to look at the UI (localhost:12043/api/swagger.json) I get a 404 not found error. Is there an additional configuration that I am missing?

Here is my Main class:

package com.my.company;

import java.util.EnumSet;
import javax.servlet.DispatcherType;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import io.swagger.jaxrs.config.BeanConfig;
import io.swagger.jaxrs.config.DefaultJaxrsConfig;
import io.swagger.jaxrs.config.SwaggerContextService;
import io.swagger.jaxrs.listing.ApiListingResource;
import io.swagger.jersey.config.JerseyJaxrsConfig;
import io.swagger.models.Contact;
import io.swagger.models.Info;
import io.swagger.models.License;
import io.swagger.models.Swagger;
import org.eclipse.jetty.server.Connector;
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.ContextHandler;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler;
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.DefaultServlet;
//import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.servlet.ServletContainer;
import org.jhades.JHades;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.eclipse.jetty.webapp.WebAppContext;
import com.my.company.swagger.api.HelloApi;
import com.my.company.swagger.api.HelloApiService;;

public class MyApp {
 private static final Logger LOGGER = LoggerFactory.getLogger(MyApp.class);
 private static ApplicationContext appContext = new AnnotationConfigApplicationContext("com.my.company");
 private static final int SERVER_PORT = 12043;

 public static void main(String[] args) throws Exception {
  
// Create Embedded Jetty server
  Server jettyServer = 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(jettyServer, new HttpConnectionFactory(http_config));
  http.setPort(SERVER_PORT);
  http.setIdleTimeout(30000);
  jettyServer.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);
  jettyServer.setSessionIdManager(idManager);
  SessionHandler sessionHandler = new SessionHandler(sessionManager);
  servletContextHandler.setSessionHandler(sessionHandler);
  jettyServer.setHandler(servletContextHandler);
    
  //Add API Origin Filter
  servletContextHandler.addFilter("com.my.company.swagger.api.util.ApiOriginFilter", "/*", EnumSet.of(DispatcherType.INCLUDE, DispatcherType.REQUEST));

  // Use a servlet holder to manage Jersey services
 
 // Setup API resources
  ServletHolder jerseyServlet = servletContextHandler.addServlet(ServletContainer.class, "/api/*");
  jerseyServlet.setInitOrder(1);
  jerseyServlet
    .setInitParameter(
      "com.sun.jersey.config.property.packages",
      "io.swagger.jaxrs.json;io.swagger.jaxrs;io.swagger.jaxrs.listing,com.my.company.swagger.api");
  jerseyServlet.setInitParameter(
    "com.sun.jersey.spi.container.ContainerRequestFilters",
    "com.sun.jersey.api.container.filter.PostReplaceFilter");
  jerseyServlet.setInitParameter(
    "com.sun.jersey.api.json.POJOMappingFeature", "true");
  jerseyServlet.setInitParameter(
    "com.sun.jersey.config.feature.DisableWADL", "true");
  jerseyServlet
    .setInitParameter(
      "jersey.config.server.provider.classnames",
      "org.glassfish.jersey.filter.LoggingFilter;org.glassfish.jersey.media.multipart.MultiPartFeature");
  jerseyServlet.setInitParameter(
    "jersey.config.server.provider.packages",
    "com.my.company.swagger.api");

  // Setup Swagger Servlet
  ServletHolder swaggerServlet = servletContextHandler.addServlet(JerseyJaxrsConfig.class, "/swagger-core");
  swaggerServlet.setInitOrder(2);
  swaggerServlet.setInitParameter("api.version", "1.0.0");
  swaggerServlet.setInitParameter("description", "Hello World!");
  swaggerServlet.setInitParameter("swagger.api.title", "Swagger Server Test");
  swaggerServlet.setInitParameter("swagger.api.basepath", "http://localhost:" + SERVER_PORT + "/api");
  swaggerServlet.setInitParameter("swagger.pretty.print", "true");
  
  jettyServer.setHandler(servletContextHandler);

  // Start the server
  jettyServer.start();
  System.out.println("SERVER DUMP AFTER START" + jettyServer.dump());
  testHello();

  // 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()
  jettyServer.join();
  
 }

 /**
  * Test the hello functionality to make sure it is working
  */
 private static void testHello() {
  HelloApiService helloApiService = (HelloApiService) appContext.getBean("HelloApiService");
  LOGGER.debug("Printing {}", helloApiService.getHelloApi());
  System.out.println(helloApiService.getHelloApi());
 }

 /**
  * Get the application context
  */
 public static ApplicationContext getApplicationContext() {
  return appContext;
 }

}

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/maven-v4_0_0.xsd">
 <parent>
  <groupId>io.swagger</groupId>
  <artifactId>MyParentProject</artifactId>
  <version>1.0.0</version>
  <relativePath>../pom.xml</relativePath>
 </parent>
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.my.company.swagger.api</groupId>
 <artifactId>IAFGeneratedWithEmbeddedJetty</artifactId>
 <packaging>war</packaging>
 <name>IAFGeneratedCode</name>
 <build>
  <sourceDirectory>src/main/java</sourceDirectory>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
     <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
    <version>2.6</version>
   </plugin>
   <plugin>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.19.1</version>
    <executions>
     <execution>
      <goals>
       <goal>integration-test</goal>
       <goal>verify</goal>
      </goals>
     </execution>
    </executions>
   </plugin>
   <!-- Jetty Setup -->
   <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.5.0</version>
    <executions>
     <execution>
      <goals>
       <goal>java</goal>
      </goals>
     </execution>
    </executions>
    <configuration>
     <mainClass>com.my.company.MyApp</mainClass>
     <classpathScope>runtime</classpathScope>
    </configuration>
   </plugin>
   <!-- Swagger UI Plugin -->
   <plugin>
    <groupId>com.googlecode.maven-download-plugin</groupId>
    <artifactId>download-maven-plugin</artifactId>
    <version>1.3.0</version>
    <executions>
     <execution>
      <id>swagger-ui</id>
      <goals>
       <goal>wget</goal>
      </goals>
      <configuration>
       <url>file:///${basedir}/src/main/resources/swagger-ui-master.tar.gz</url>
       <unpack>true</unpack>
       <outputDirectory>${project.build.directory}</outputDirectory>
      </configuration>
     </execution>
    </executions>
   </plugin>
   <plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
    <executions>
     <execution>
      <id>copy-resources</id>
      <phase>validate</phase>
      <goals>
       <goal>copy-resources</goal>
      </goals>
      <configuration>
       <outputDirectory>target/${project.artifactId}-${project.version}</outputDirectory>
       <resources>
        <resource>
         <directory>${project.build.directory}/swagger-ui-master/dist</directory>
         <filtering>true</filtering>
         <excludes>
          <exclude>index.html</exclude>
         </excludes>
        </resource>
       </resources>
      </configuration>
     </execution>
    </executions>
   </plugin>
   <!-- Swagger Plugin to Generate YAML/JSON Files at Compile Time -->
   <plugin>
    <groupId>com.github.kongchen</groupId>
    <artifactId>swagger-maven-plugin</artifactId>
    <version>3.1.2</version>
    <configuration>
     <apiSources>
      <apiSource>
       <springmvc>false</springmvc>
       <locations>com.my.company.swagger.api</locations>
       <info>
        <title>Swagger Generated Files Example</title>
        <version>v1</version>
        <description>This is an example of the generated swagger files</description>
       </info>
       <outputFormats>json,yaml</outputFormats>
       <swaggerDirectory>${basedir}/src/main/resources</swaggerDirectory> <!-- directory the generated file will be put in -->
       <attachSwaggerArtifact>true</attachSwaggerArtifact>
      </apiSource>
     </apiSources>
    </configuration>
    <executions>
     <execution>
      <phase>compile</phase>
      <goals>
       <goal>generate</goal>
      </goals>
     </execution>
    </executions>
   </plugin>
  </plugins>
  <pluginManagement>
   <plugins>
    <!-- This plugin's configuration is used to store Eclipse m2e settings
     only. It has no influence on the Maven build itself. -->
    <plugin>
     <groupId>org.eclipse.m2e</groupId>
     <artifactId>lifecycle-mapping</artifactId>
     <version>1.0.0</version>
     <configuration>
      <lifecycleMappingMetadata>
       <pluginExecutions>
        <pluginExecution>
         <pluginExecutionFilter>
          <groupId>
           com.github.kongchen
          </groupId>
          <artifactId>
           swagger-maven-plugin
          </artifactId>
          <versionRange>
           [${swagger-maven-plugin-version},)
          </versionRange>
          <goals>
           <goal>generate</goal>
          </goals>
         </pluginExecutionFilter>
         <action>
          <ignore></ignore>
         </action>
        </pluginExecution>
       </pluginExecutions>
      </lifecycleMappingMetadata>
     </configuration>
    </plugin>
   </plugins>
  </pluginManagement>
 </build>
 <dependencies>
  <dependency>
   <groupId>org.jhades</groupId>
   <artifactId>jhades</artifactId>
   <version>1.0.4</version>
  </dependency>
  <!-- swagger dependencies -->
  <!-- <dependency> -->
  <!-- <groupId>io.swagger</groupId> -->
  <!-- <artifactId>swagger-jaxrs</artifactId> -->
  <!-- <version>${swagger-version}</version> -->
  <!-- <scope>compile</scope> -->
  <!-- </dependency> -->
  <dependency>
   <groupId>io.swagger</groupId>
   <artifactId>swagger-jersey2-jaxrs</artifactId>
   <version>1.5.8</version>
  </dependency>
  <dependency>
   <groupId>io.swagger</groupId>
   <artifactId>swagger-core</artifactId>
   <scope>compile</scope>
   <version>1.5.8</version>
  </dependency>
  <!-- dependency needed for the client code being generated -->
  <dependency>
   <groupId>io.swagger</groupId>
   <artifactId>swagger-annotations</artifactId>
   <version>${swagger-annotations-version}</version>
  </dependency>
  <!-- dependency needed for enabling the BeanValidator as a custom model
   converter -->
  <dependency>
   <groupId>io.swagger</groupId>
   <artifactId>swagger-hibernate-validations</artifactId>
   <version>1.5.8</version>
  </dependency>

  <!-- logback dependencies -->
  <dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-classic</artifactId>
   <version>${logback-version}</version>
   <scope>compile</scope>
  </dependency>
  <dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-core</artifactId>
   <version>${logback-version}</version>
   <scope>compile</scope>
  </dependency>
  <!-- Testing dependencies -->
  <dependency>
   <groupId>org.scalatest</groupId>
   <artifactId>scalatest_2.10</artifactId>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>org.scala-lang</groupId>
   <artifactId>scala-library</artifactId>
   <version>2.10.6</version>
  </dependency>
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <scope>test</scope>
  </dependency>
  <!-- Jersey Dependencies -->
  <dependency>
   <groupId>org.glassfish.jersey.media</groupId>
   <artifactId>jersey-media-multipart</artifactId>
   <version>${jersey2-version}</version>
  </dependency>
  <dependency>
   <groupId>org.glassfish.jersey.media</groupId>
   <artifactId>jersey-media-json-jackson</artifactId>
   <version>${jersey2-version}</version>
  </dependency>
  <dependency>
   <groupId>org.glassfish.jersey.containers</groupId>
   <artifactId>jersey-container-servlet</artifactId>
   <version>${jersey2-version}</version>
  </dependency>
  <dependency>
   <groupId>org.glassfish.jersey.containers</groupId>
   <artifactId>jersey-container-servlet-core</artifactId>
   <version>${jersey2-version}</version>
  </dependency>
  <!-- Jetty 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>
  <dependency>
   <groupId>org.eclipse.jetty</groupId>
   <artifactId>jetty-webapp</artifactId>
   <version>${jetty-version}</version>
  </dependency>
  <dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
   <version>3.1.0</version>
   <scope>compile</scope>
  </dependency>
  <!-- JSON processing: jackson -->
  <dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-core</artifactId>
   <version>${jackson-version}</version>
  </dependency>
  <dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-annotations</artifactId>
   <version>${jackson-version}</version>
  </dependency>
  <dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-databind</artifactId>
   <version>${jackson-version}</version>
  </dependency>
  <dependency>
   <groupId>com.fasterxml.jackson.datatype</groupId>
   <artifactId>jackson-datatype-joda</artifactId>
   <version>2.1.5</version>
  </dependency>
  <dependency>
   <groupId>joda-time</groupId>
   <artifactId>joda-time</artifactId>
   <version>2.2</version>
  </dependency>
  <!-- Base64 encoding that works in both JVM and Android -->
  <dependency>
   <groupId>com.brsanthu</groupId>
   <artifactId>migbase64</artifactId>
   <version>2.2</version>
  </dependency>
  <!-- Spring Dependencies -->
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-core</artifactId>
   <version>4.2.4.RELEASE</version>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-context</artifactId>
   <version>4.2.4.RELEASE</version>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-beans</artifactId>
   <version>4.2.4.RELEASE</version>
  </dependency>
 </dependencies>
 <properties>
  <swagger-annotations-version>1.5.8</swagger-annotations-version>
  <coverage.complexity.minimum>0</coverage.complexity.minimum>
  <coverage.line.minimum>0</coverage.line.minimum>
  <coverage.missed.classes>0</coverage.missed.classes>
 </properties>
</project>


I don't have a web.xml file. Please let me know if there are any other classes that you need to see. Thank you in advance for any help.

- Jennifer

Ron Ratovsky

unread,
May 17, 2016, 4:33:01 PM5/17/16
to swagger-sw...@googlegroups.com

Is your API itself accessible?

 

You may want to change the line to the following:

  jerseyServlet

    .setInitParameter(

      "com.sun.jersey.config.property.packages",

      "io.swagger.jaxrs.json;io.swagger.jaxrs;io.swagger.jaxrs.listing,com.my;company.swagger.api");

--
You received this message because you are subscribed to the Google Groups "Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggers...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jennifer Coston

unread,
May 17, 2016, 4:52:31 PM5/17/16
to Swagger
I'm not sure. I changed the comma to a semicolon as you suggested, but I'm still seeing an HTTP 404 Error. For http://localhost:12043/api/swagger.json, http://localhost:12043/ and http://localhost:12043/api. Is there another way to check if it can be accessed? It looks like everything is being set up from the debug statements:

[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for com.my.company.swagger.api:GeneratedWithEmbeddedJetty:war:1.0.0
[WARNING] 'parent.relativePath' of POM io.swagger:MyParentProject:1.0.0 (C:\Swagger\EmbeddedJetty\pom.xml) points at io.swagger:com.my.company instead of org.sonatype.oss:oss-parent, please verify your project structure @ io.swagger:IAFParentProject:1.0.0, C:\Swagger\EmbeddedJetty\pom.xml, line 3, column 10
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[WARNING] The POM for org.eclipse.m2e:lifecycle-mapping:jar:1.0.0 is missing, no dependency information available
[WARNING] Failed to retrieve plugin descriptor for org.eclipse.m2e:lifecycle-mapping:1.0.0: Plugin org.eclipse.m2e:lifecycle-mapping:1.0.0 or one of its dependencies could not be resolved: Failure to find org.eclipse.m2e:lifecycle-mapping:jar:1.0.0 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of US has elapsed or updates are forced
[INFO]                                                                        
[INFO] ------------------------------------------------------------------------
[INFO] Building IAFGeneratedCode 1.0.0
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.eclipse.m2e:lifecycle-mapping:jar:1.0.0 is missing, no dependency information available
[WARNING] Failed to retrieve plugin descriptor for org.eclipse.m2e:lifecycle-mapping:1.0.0: Plugin org.eclipse.m2e:lifecycle-mapping:1.0.0 or one of its dependencies could not be resolved: Failure to find org.eclipse.m2e:lifecycle-mapping:jar:1.0.0 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of US has elapsed or updates are forced
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ GeneratedWithEmbeddedJetty ---
[INFO] Deleting C:\Swagger\EmbeddedJetty\generated\target
[INFO]
[INFO] --- maven-enforcer-plugin:1.0-beta-1:enforce (enforce-maven) @ GeneratedWithEmbeddedJetty ---
[INFO]
[INFO] --- maven-enforcer-plugin:1.0-beta-1:enforce (enforce-versions) @ GeneratedWithEmbeddedJetty ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:copy-resources (copy-resources) @ GeneratedWithEmbeddedJetty ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Swagger\EmbeddedJetty\generated\target\swagger-ui-master\dist
[INFO]
[INFO] --- scala-maven-plugin:3.2.2:add-source (default) @ GeneratedWithEmbeddedJetty ---
[INFO] Add Source directory: C:\Swagger\EmbeddedJetty\generated\src\main\scala
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ GeneratedWithEmbeddedJetty ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 5 resources
[INFO]
[INFO] --- download-maven-plugin:1.3.0:wget (swagger-ui) @ GeneratedWithEmbeddedJetty ---
[INFO] Got from cache: C:\Users\myUser\tutorialAndDemo_workspace\.m2\repository1\.cache\download-maven-plugin\swagger-ui-master.tar.gz_d884789ba1df6e521bd2cdffea0ff04e
[INFO] Expanding: C:\Swagger\EmbeddedJetty\generated\target\swagger-ui-master.tar.gz into C:\Swagger\EmbeddedJetty\generated\target
[INFO]
[INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @ GeneratedWithEmbeddedJetty ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 16 source files to C:\Swagger\EmbeddedJetty\generated\target\classes
[INFO]
[INFO] --- scala-maven-plugin:3.2.2:compile (default) @ GeneratedWithEmbeddedJetty ---
[INFO] C:\Swagger\EmbeddedJetty\generated\src\main\java:-1: info: compiling
[INFO] C:\Swagger\EmbeddedJetty\generated\src\main\scala:-1: info: compiling
[INFO] C:\Swagger\EmbeddedJetty\generated\target\generated-sources\annotations:-1: info: compiling
[INFO] Compiling 16 source files to C:\Swagger\EmbeddedJetty\generated\target\classes at 1463517819186
[INFO] prepare-compile in 0 s
[INFO] compile in 2 s
[INFO]
[INFO] --- swagger-maven-plugin:3.1.2:generate (default) @ GeneratedWithEmbeddedJetty ---
[INFO] Reflections took 78 ms to scan 1 urls, producing 15 keys and 18 values
[INFO] Looking for path/query/header/form/cookie params in class java.lang.String
[INFO] trying extension com.github.kongchen.swagger.docgen.jaxrs.BeanParamInjectParamExtention@703cb756
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ GeneratedWithEmbeddedJetty ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Swagger\EmbeddedJetty\generated\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.5.1:testCompile (default-testCompile) @ GeneratedWithEmbeddedJetty ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- scala-maven-plugin:3.2.2:testCompile (default) @ GeneratedWithEmbeddedJetty ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ GeneratedWithEmbeddedJetty ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-war-plugin:2.6:war (default-war) @ GeneratedWithEmbeddedJetty ---
[INFO] Packaging webapp
[INFO] Assembling webapp [GeneratedWithEmbeddedJetty] in [C:\Swagger\EmbeddedJetty\generated\target\GeneratedWithEmbeddedJetty-1.0.0]
[INFO] Processing war project
[INFO] Webapp assembled in [2372 msecs]
[INFO] Building war: C:\Swagger\EmbeddedJetty\generated\target\GeneratedWithEmbeddedJetty-1.0.0.war
[INFO]
[INFO] --- maven-dependency-plugin:2.8:copy-dependencies (default) @ GeneratedWithEmbeddedJetty ---
[INFO] Copying commons-lang3-3.4.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\commons-lang3-3.4.jar
[INFO] Copying jetty-webapp-9.3.6.v20151106.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jetty-webapp-9.3.6.v20151106.jar
[INFO] Copying spring-expression-4.2.4.RELEASE.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\spring-expression-4.2.4.RELEASE.jar
[INFO] Copying javassist-3.19.0-GA.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\javassist-3.19.0-GA.jar
[INFO] Copying swagger-hibernate-validations-1.5.8.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\swagger-hibernate-validations-1.5.8.jar
[INFO] Copying annotations-2.0.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\annotations-2.0.1.jar
[INFO] Copying hk2-utils-2.4.0-b31.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\hk2-utils-2.4.0-b31.jar
[INFO] Copying jersey-media-jaxb-2.22.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jersey-media-jaxb-2.22.1.jar
[INFO] Copying swagger-jaxrs-1.5.8.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\swagger-jaxrs-1.5.8.jar
[INFO] Copying spring-beans-4.2.4.RELEASE.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\spring-beans-4.2.4.RELEASE.jar
[INFO] Copying aopalliance-1.0.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\aopalliance-1.0.jar
[INFO] Copying jersey-media-multipart-2.22.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jersey-media-multipart-2.22.1.jar
[INFO] Copying aopalliance-repackaged-2.4.0-b31.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\aopalliance-repackaged-2.4.0-b31.jar
[INFO] Copying jersey-common-2.22.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jersey-common-2.22.1.jar
[INFO] Copying swagger-annotations-1.5.8.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\swagger-annotations-1.5.8.jar
[INFO] Copying migbase64-2.2.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\migbase64-2.2.jar
[INFO] Copying mimepull-1.9.6.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\mimepull-1.9.6.jar
[INFO] Copying spring-aop-4.2.4.RELEASE.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\spring-aop-4.2.4.RELEASE.jar
[INFO] Copying jersey-entity-filtering-2.22.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jersey-entity-filtering-2.22.1.jar
[INFO] Copying jersey-container-servlet-2.22.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jersey-container-servlet-2.22.1.jar
[INFO] Copying jackson-datatype-joda-2.1.5.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jackson-datatype-joda-2.1.5.jar
[INFO] Copying jersey-container-servlet-core-2.22.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jersey-container-servlet-core-2.22.1.jar
[INFO] Copying jetty-servlet-9.3.6.v20151106.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jetty-servlet-9.3.6.v20151106.jar
[INFO] Copying hamcrest-core-1.3.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\hamcrest-core-1.3.jar
[INFO] Copying javax.ws.rs-api-2.0.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\javax.ws.rs-api-2.0.1.jar
[INFO] Copying jackson-module-jaxb-annotations-2.5.4.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jackson-module-jaxb-annotations-2.5.4.jar
[INFO] Copying commons-logging-1.2.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\commons-logging-1.2.jar
[INFO] Copying jackson-dataformat-yaml-2.4.5.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jackson-dataformat-yaml-2.4.5.jar
[INFO] Copying jetty-util-9.3.6.v20151106.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jetty-util-9.3.6.v20151106.jar
[INFO] Copying jackson-jaxrs-base-2.5.4.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jackson-jaxrs-base-2.5.4.jar
[INFO] Copying swagger-jersey2-jaxrs-1.5.8.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\swagger-jersey2-jaxrs-1.5.8.jar
[INFO] Copying validation-api-1.1.0.Final.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\validation-api-1.1.0.Final.jar
[INFO] Copying logback-core-1.0.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\logback-core-1.0.1.jar
[INFO] Copying jersey-guava-2.22.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jersey-guava-2.22.1.jar
[INFO] Copying javax.ejb-api-3.2.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\javax.ejb-api-3.2.jar
[INFO] Copying swagger-models-1.5.8.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\swagger-models-1.5.8.jar
[INFO] Copying jersey-client-2.22.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jersey-client-2.22.1.jar
[INFO] Copying scalatest_2.10-2.2.6.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\scalatest_2.10-2.2.6.jar
[INFO] Copying jackson-databind-2.4.2.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jackson-databind-2.4.2.jar
[INFO] Copying jackson-dataformat-xml-2.4.5.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jackson-dataformat-xml-2.4.5.jar
[INFO] Copying jersey-media-json-jackson-2.22.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jersey-media-json-jackson-2.22.1.jar
[INFO] Copying logback-classic-1.0.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\logback-classic-1.0.1.jar
[INFO] Copying jetty-security-9.3.6.v20151106.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jetty-security-9.3.6.v20151106.jar
[INFO] Copying reflections-0.9.10.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\reflections-0.9.10.jar
[INFO] Copying jetty-http-9.3.6.v20151106.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jetty-http-9.3.6.v20151106.jar
[INFO] Copying snakeyaml-1.12.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\snakeyaml-1.12.jar
[INFO] Copying spring-core-4.2.4.RELEASE.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\spring-core-4.2.4.RELEASE.jar
[INFO] Copying scala-reflect-2.10.6.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\scala-reflect-2.10.6.jar
[INFO] Copying jackson-jaxrs-json-provider-2.5.4.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jackson-jaxrs-json-provider-2.5.4.jar
[INFO] Copying javax.annotation-api-1.2.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\javax.annotation-api-1.2.jar
[INFO] Copying jackson-annotations-2.4.2.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jackson-annotations-2.4.2.jar
[INFO] Copying hk2-api-2.4.0-b31.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\hk2-api-2.4.0-b31.jar
[INFO] Copying slf4j-api-1.7.21.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\slf4j-api-1.7.21.jar
[INFO] Copying joda-time-2.2.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\joda-time-2.2.jar
[INFO] Copying jetty-server-9.3.6.v20151106.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jetty-server-9.3.6.v20151106.jar
[INFO] Copying osgi-resource-locator-1.0.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\osgi-resource-locator-1.0.1.jar
[INFO] Copying javax.servlet-api-3.1.0.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\javax.servlet-api-3.1.0.jar
[INFO] Copying jetty-xml-9.3.6.v20151106.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jetty-xml-9.3.6.v20151106.jar
[INFO] Copying jackson-core-2.4.2.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jackson-core-2.4.2.jar
[INFO] Copying stax2-api-3.1.4.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\stax2-api-3.1.4.jar
[INFO] Copying junit-4.12.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\junit-4.12.jar
[INFO] Copying guava-18.0.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\guava-18.0.jar
[INFO] Copying javax.inject-2.4.0-b31.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\javax.inject-2.4.0-b31.jar
[INFO] Copying jersey-server-2.22.1.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jersey-server-2.22.1.jar
[INFO] Copying javax.transaction-api-1.2.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\javax.transaction-api-1.2.jar
[INFO] Copying swagger-core-1.5.8.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\swagger-core-1.5.8.jar
[INFO] Copying jhades-1.0.4.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jhades-1.0.4.jar
[INFO] Copying scala-library-2.10.6.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\scala-library-2.10.6.jar
[INFO] Copying spring-context-4.2.4.RELEASE.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\spring-context-4.2.4.RELEASE.jar
[INFO] Copying hk2-locator-2.4.0-b31.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\hk2-locator-2.4.0-b31.jar
[INFO] Copying jetty-io-9.3.6.v20151106.jar to C:\Swagger\EmbeddedJetty\generated\target\lib\jetty-io-9.3.6.v20151106.jar
[INFO]
[INFO] --- maven-enforcer-plugin:1.0-beta-1:enforce (enforce-maven) @ GeneratedWithEmbeddedJetty ---
[INFO]
[INFO] --- maven-enforcer-plugin:1.0-beta-1:enforce (enforce-versions) @ GeneratedWithEmbeddedJetty ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:copy-resources (copy-resources) @ GeneratedWithEmbeddedJetty ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 45 resources
[INFO]
[INFO] --- scala-maven-plugin:3.2.2:add-source (default) @ GeneratedWithEmbeddedJetty ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ GeneratedWithEmbeddedJetty ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 5 resources
[INFO]
[INFO] --- download-maven-plugin:1.3.0:wget (swagger-ui) @ GeneratedWithEmbeddedJetty ---
[INFO] Got from cache: C:\Users\myUser\tutorialAndDemo_workspace\.m2\repository1\.cache\download-maven-plugin\swagger-ui-master.tar.gz_d884789ba1df6e521bd2cdffea0ff04e
[INFO] Expanding: C:\Swagger\EmbeddedJetty\generated\target\swagger-ui-master.tar.gz into C:\Swagger\EmbeddedJetty\generated\target
[INFO]
[INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @ GeneratedWithEmbeddedJetty ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- scala-maven-plugin:3.2.2:compile (default) @ GeneratedWithEmbeddedJetty ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- swagger-maven-plugin:3.1.2:generate (default) @ GeneratedWithEmbeddedJetty ---
[INFO] Reflections took 16 ms to scan 1 urls, producing 15 keys and 18 values
[INFO] Looking for path/query/header/form/cookie params in class java.lang.String
[INFO] trying extension com.github.kongchen.swagger.docgen.jaxrs.BeanParamInjectParamExtention@1c09bb7a
[INFO]
[INFO] --- exec-maven-plugin:1.5.0:java (default-cli) @ GeneratedWithEmbeddedJetty ---
May 17, 2016 4:43:56 PM org.springframework.context.annotation.AnnotationConfigApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@50ef2981: startup date [Tue May 17 16:43:56 EDT 2016]; root of context hierarchy
May 17, 2016 4:43:57 PM org.springframework.beans.factory.config.PropertyPlaceholderConfigurer loadProperties
INFO: Loading properties file from class path resource [app.properties]
May 17, 2016 4:43:57 PM org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor <init>
INFO: JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
16:43:57.223 [com.my.company.MyApp.main()] DEBUG com.my.company.ApplicationConfig - Getting HelloApiService from ApplicationConfig.java
16:43:57.223 [com.my.company.MyApp.main()] DEBUG c.r.i.s.api.HelloApiServiceFactory - Getting bean 'HelloApiServiceBImpl'
16:43:57.301 [com.my.company.MyApp.main()] DEBUG org.eclipse.jetty.util.log - Logging to Logger[org.eclipse.jetty.util.log] via org.eclipse.jetty.util.log.Slf4jLog
16:43:57.317 [com.my.company.MyApp.main()] INFO  org.eclipse.jetty.util.log - Logging initialized @43141ms
16:43:57.332 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.server.Server@46e82163 added {qtp1387667051{STOPPED,8<=0<=200,i=0,q=0},AUTO}
16:43:57.365 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - HttpConnectionFactory@34c3b023[HTTP/1.1] added {HttpConfiguration@4b7e1ae5{32768/8192,8192/8192,https://:0,[]},POJO}
16:43:57.365 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - ServerConnector@20aa8e5e{null,[]}{0.0.0.0:0} added {org.eclipse.jetty.server.Server@46e82163,UNMANAGED}
16:43:57.365 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - ServerConnector@20aa8e5e{null,[]}{0.0.0.0:0} added {qtp1387667051{STOPPED,8<=0<=200,i=0,q=0},AUTO}
16:43:57.365 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - ServerConnector@20aa8e5e{null,[]}{0.0.0.0:0} added {org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@701b3a08,AUTO}
16:43:57.365 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - ServerConnector@20aa8e5e{null,[]}{0.0.0.0:0} added {org.eclipse.jetty.io.ArrayByteBufferPool@5180c97f,POJO}
16:43:57.365 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - ServerConnector@20aa8e5e{null,[http/1.1]}{0.0.0.0:0} added {HttpConnectionFactory@34c3b023[HTTP/1.1],AUTO}
16:43:57.365 [com.my.company.MyApp.main()] DEBUG o.e.jetty.server.ServerConnector - ServerConnector@20aa8e5e{HTTP/1.1,[http/1.1]}{0.0.0.0:0} added HttpConnectionFactory@34c3b023[HTTP/1.1]
16:43:57.380 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - ServerConnector@20aa8e5e{HTTP/1.1,[http/1.1]}{0.0.0.0:0} added {org.eclipse.jetty.server.ServerConnector$ServerConnectorManager@5874dad4,MANAGED}
16:43:57.380 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.server.Server@46e82163 added {ServerConnector@20aa8e5e{HTTP/1.1,[http/1.1]}{0.0.0.0:12043},AUTO}
16:43:57.411 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.server.session.SessionHandler@df646c5 added {org.eclipse.jetty.server.session.HashSessionManager@31065a81,AUTO}
16:43:57.411 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - o.e.j.s.ServletContextHandler@35d5f9d6{/,null,null} added {org.eclipse.jetty.server.session.SessionHandler@df646c5,MANAGED}
16:43:57.427 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.server.session.SessionHandler@df646c5 added {org.eclipse.jetty.servlet.ServletHandler@21a50846,MANAGED}
16:43:57.427 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.server.Server@46e82163 added {o.e.j.s.ServletContextHandler@35d5f9d6{/,null,null},MANAGED}
16:43:57.443 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.servlet.ServletHandler@21a50846 added {org.eclipse.jetty.servlet.DefaultServlet-7a662da0@bc8f4b4a==org.eclipse.jetty.servlet.DefaultServlet,-1,false,AUTO}
16:43:57.443 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.servlet.ServletHandler@21a50846 added {[/*]=>org.eclipse.jetty.servlet.DefaultServlet-7a662da0,POJO}
16:43:57.443 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.servlet.ServletHandler@21a50846 added {com.my.company.swagger.api.util.ApiOriginFilter-7802af59,AUTO}
16:43:57.443 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.servlet.ServletHandler@21a50846 added {[/*]/[]==5=>com.my.company.swagger.api.util.ApiOriginFilter-7802af59,POJO}
16:43:57.458 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.servlet.ServletHandler@21a50846 added {org.glassfish.jersey.servlet.ServletContainer-17b90e@5a8243c0==org.glassfish.jersey.servlet.ServletContainer,-1,false,AUTO}
16:43:57.458 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.servlet.ServletHandler@21a50846 added {[/api/*]=>org.glassfish.jersey.servlet.ServletContainer-17b90e,POJO}
16:43:57.474 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.servlet.ServletHandler@21a50846 added {io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710@924f28d5==io.swagger.jersey.config.JerseyJaxrsConfig,-1,false,AUTO}
16:43:57.474 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.servlet.ServletHandler@21a50846 added {[/swagger-core]=>io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710,POJO}
16:43:57.474 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting org.eclipse.jetty.server.Server@46e82163
16:43:57.474 [com.my.company.MyApp.main()] INFO  org.eclipse.jetty.server.Server - jetty-9.3.6.v20151106
16:43:57.489 [com.my.company.MyApp.main()] DEBUG o.e.j.server.handler.AbstractHandler - starting org.eclipse.jetty.server.Server@46e82163
16:43:57.489 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting qtp1387667051{STOPPED,8<=0<=200,i=0,q=0}
16:43:57.505 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @43322ms qtp1387667051{STARTED,8<=8<=200,i=3,q=0}
16:43:57.505 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting o.e.j.s.ServletContextHandler@35d5f9d6{/,null,null}
16:43:57.505 [com.my.company.MyApp.main()] DEBUG o.e.jetty.http.PreEncodedHttpField - HttpField encoders loaded: [org.eclipse.jetty.http.Http1FieldPreEncoder@6b356983]
16:43:57.521 [com.my.company.MyApp.main()] DEBUG o.e.j.server.handler.AbstractHandler - starting o.e.j.s.ServletContextHandler@35d5f9d6{/,null,STARTING}
16:43:57.521 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting org.eclipse.jetty.server.session.SessionHandler@df646c5
16:43:57.521 [com.my.company.MyApp.main()] DEBUG o.e.j.server.handler.AbstractHandler - starting org.eclipse.jetty.server.session.SessionHandler@df646c5
16:43:57.521 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting org.eclipse.jetty.server.session.HashSessionManager@31065a81
16:43:57.521 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.server.session.HashSessionManager@31065a81 added {org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@7be95cba,MANAGED}
16:43:57.521 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting org.eclipse.jetty.server.session.HashSessionIdManager@6da9da6b
16:43:57.521 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @43345ms org.eclipse.jetty.server.session.HashSessionIdManager@6da9da6b
16:43:57.521 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.server.Server@46e82163 added {org.eclipse.jetty.server.session.HashSessionIdManager@6da9da6b,MANAGED}
16:43:57.521 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.server.session.HashSessionManager@31065a81 added {org.eclipse.jetty.server.session.HashSessionIdManager@6da9da6b,UNMANAGED}
16:43:57.521 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@7be95cba
16:43:57.521 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @43351ms org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@7be95cba
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @43357ms org.eclipse.jetty.server.session.HashSessionManager@31065a81
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting org.eclipse.jetty.servlet.ServletHandler@21a50846
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - Chose path=/swagger-core mapped to servlet=io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710 from default=false
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - Chose path=/api/* mapped to servlet=org.glassfish.jersey.servlet.ServletContainer-17b90e from default=false
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - Chose path=/* mapped to servlet=org.eclipse.jetty.servlet.DefaultServlet-7a662da0 from default=false
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - filterNameMap={com.my.company.swagger.api.util.ApiOriginFilter-7802af59=com.my.company.swagger.api.util.ApiOriginFilter-7802af59}
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - pathFilters=[[/*]/[]==5=>com.my.company.swagger.api.util.ApiOriginFilter-7802af59]
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - servletFilterMap={}
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - servletPathMap={/swagger-core=io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710@924f28d5==io.swagger.jersey.config.JerseyJaxrsConfig,2,false, /api/*=org.glassfish.jersey.servlet.ServletContainer-17b90e@5a8243c0==org.glassfish.jersey.servlet.ServletContainer,1,false, /*=org.eclipse.jetty.servlet.DefaultServlet-7a662da0@bc8f4b4a==org.eclipse.jetty.servlet.DefaultServlet,-1,false}
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - servletNameMap={org.glassfish.jersey.servlet.ServletContainer-17b90e=org.glassfish.jersey.servlet.ServletContainer-17b90e@5a8243c0==org.glassfish.jersey.servlet.ServletContainer,1,false, org.eclipse.jetty.servlet.DefaultServlet-7a662da0=org.eclipse.jetty.servlet.DefaultServlet-7a662da0@bc8f4b4a==org.eclipse.jetty.servlet.DefaultServlet,-1,false, io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710=io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710@924f28d5==io.swagger.jersey.config.JerseyJaxrsConfig,2,false}
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - Adding Default404Servlet to org.eclipse.jetty.servlet.ServletHandler@21a50846
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.servlet.ServletHandler@21a50846 added {org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-31ca6d0@17a8fe32==org.eclipse.jetty.servlet.ServletHandler$Default404Servlet,-1,false,AUTO}
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - org.eclipse.jetty.servlet.ServletHandler@21a50846 added {[/]=>org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-31ca6d0,POJO}
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - Chose path=/swagger-core mapped to servlet=io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710 from default=false
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - Chose path=/api/* mapped to servlet=org.glassfish.jersey.servlet.ServletContainer-17b90e from default=false
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - Chose path=/* mapped to servlet=org.eclipse.jetty.servlet.DefaultServlet-7a662da0 from default=false
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - Chose path=/ mapped to servlet=org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-31ca6d0 from default=false
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - filterNameMap={com.my.company.swagger.api.util.ApiOriginFilter-7802af59=com.my.company.swagger.api.util.ApiOriginFilter-7802af59}
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - pathFilters=[[/*]/[]==5=>com.my.company.swagger.api.util.ApiOriginFilter-7802af59]
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - servletFilterMap={}
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - servletPathMap={/swagger-core=io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710@924f28d5==io.swagger.jersey.config.JerseyJaxrsConfig,2,false, /api/*=org.glassfish.jersey.servlet.ServletContainer-17b90e@5a8243c0==org.glassfish.jersey.servlet.ServletContainer,1,false, /*=org.eclipse.jetty.servlet.DefaultServlet-7a662da0@bc8f4b4a==org.eclipse.jetty.servlet.DefaultServlet,-1,false, /=org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-31ca6d0@17a8fe32==org.eclipse.jetty.servlet.ServletHandler$Default404Servlet,-1,false}
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHandler - servletNameMap={org.glassfish.jersey.servlet.ServletContainer-17b90e=org.glassfish.jersey.servlet.ServletContainer-17b90e@5a8243c0==org.glassfish.jersey.servlet.ServletContainer,1,false, org.eclipse.jetty.servlet.DefaultServlet-7a662da0=org.eclipse.jetty.servlet.DefaultServlet-7a662da0@bc8f4b4a==org.eclipse.jetty.servlet.DefaultServlet,-1,false, io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710=io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710@924f28d5==io.swagger.jersey.config.JerseyJaxrsConfig,2,false, org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-31ca6d0=org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-31ca6d0@17a8fe32==org.eclipse.jetty.servlet.ServletHandler$Default404Servlet,-1,false}
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.j.server.handler.AbstractHandler - starting org.eclipse.jetty.servlet.ServletHandler@21a50846
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @43366ms org.eclipse.jetty.servlet.ServletHandler@21a50846
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @43366ms org.eclipse.jetty.server.session.SessionHandler@df646c5
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting com.my.company.swagger.api.util.ApiOriginFilter-7802af59
16:43:57.536 [com.my.company.MyApp.main()] DEBUG org.eclipse.jetty.servlet.BaseHolder - Holding class com.my.company.swagger.api.util.ApiOriginFilter from java.net.URLClassLoader@15aecd1c
16:43:57.536 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @43368ms com.my.company.swagger.api.util.ApiOriginFilter-7802af59
16:43:57.552 [com.my.company.MyApp.main()] DEBUG o.eclipse.jetty.servlet.FilterHolder - Filter.init com.my.company.swagger.api.util.ApiOriginFilter@4c9ac9e5
16:43:57.552 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting org.eclipse.jetty.servlet.DefaultServlet-7a662da0@bc8f4b4a==org.eclipse.jetty.servlet.DefaultServlet,-1,false
16:43:57.552 [com.my.company.MyApp.main()] DEBUG org.eclipse.jetty.servlet.BaseHolder - Holding class org.eclipse.jetty.servlet.DefaultServlet from java.net.URLClassLoader@15aecd1c
16:43:57.552 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @43371ms org.eclipse.jetty.servlet.DefaultServlet-7a662da0@bc8f4b4a==org.eclipse.jetty.servlet.DefaultServlet,-1,false
16:43:57.552 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-31ca6d0@17a8fe32==org.eclipse.jetty.servlet.ServletHandler$Default404Servlet,-1,false
16:43:57.552 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @43372ms org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-31ca6d0@17a8fe32==org.eclipse.jetty.servlet.ServletHandler$Default404Servlet,-1,false
16:43:57.552 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting org.glassfish.jersey.servlet.ServletContainer-17b90e@5a8243c0==org.glassfish.jersey.servlet.ServletContainer,1,false
16:43:57.552 [com.my.company.MyApp.main()] DEBUG org.eclipse.jetty.servlet.BaseHolder - Holding class org.glassfish.jersey.servlet.ServletContainer from java.net.URLClassLoader@15aecd1c
16:43:57.552 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @43375ms org.glassfish.jersey.servlet.ServletContainer-17b90e@5a8243c0==org.glassfish.jersey.servlet.ServletContainer,1,false
16:43:57.567 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHolder - Servlet.init org.glassfish.jersey.servlet.ServletContainer@3ff72294 for org.glassfish.jersey.servlet.ServletContainer-17b90e
16:43:58.987 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710@924f28d5==io.swagger.jersey.config.JerseyJaxrsConfig,2,false
16:43:58.987 [com.my.company.MyApp.main()] DEBUG org.eclipse.jetty.servlet.BaseHolder - Holding class io.swagger.jersey.config.JerseyJaxrsConfig from java.net.URLClassLoader@15aecd1c
16:43:58.987 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @44808ms io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710@924f28d5==io.swagger.jersey.config.JerseyJaxrsConfig,2,false
16:43:58.987 [com.my.company.MyApp.main()] DEBUG o.e.jetty.servlet.ServletHolder - Servlet.init io.swagger.jersey.config.JerseyJaxrsConfig@770bf98f for io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710
16:43:58.987 [com.my.company.MyApp.main()] INFO  o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@35d5f9d6{/,null,AVAILABLE}
16:43:58.987 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @44815ms o.e.j.s.ServletContextHandler@35d5f9d6{/,null,AVAILABLE}
16:43:58.987 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting ServerConnector@20aa8e5e{HTTP/1.1,[http/1.1]}{0.0.0.0:12043}
16:43:58.988 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - ServerConnector@20aa8e5e{HTTP/1.1,[http/1.1]}{0.0.0.0:12043} added {sun.nio.ch.ServerSocketChannelImpl[/0:0:0:0:0:0:0:0:12043],POJO}
16:43:58.988 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@701b3a08
16:43:58.988 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @44828ms org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@701b3a08
16:43:58.988 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting HttpConnectionFactory@34c3b023[HTTP/1.1]
16:43:58.988 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @44829ms HttpConnectionFactory@34c3b023[HTTP/1.1]
16:43:58.988 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting org.eclipse.jetty.server.ServerConnector$ServerConnectorManager@5874dad4
16:43:58.988 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting org.eclipse.jetty.io.ManagedSelector@7e88ed82 id=0 keys=-1 selected=-1
16:43:59.030 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @44848ms org.eclipse.jetty.io.ManagedSelector@7e88ed82 id=0 keys=0 selected=0
16:43:59.030 [com.my.company.MyApp.main()] DEBUG o.e.j.util.thread.QueuedThreadPool - queue org.eclipse.jetty.io.ManagedSelector@7e88ed82 id=0 keys=0 selected=0
16:43:59.030 [qtp1387667051-16] DEBUG o.e.j.util.thread.QueuedThreadPool - run org.eclipse.jetty.io.ManagedSelector@7e88ed82 id=0 keys=0 selected=0
16:43:59.030 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - starting org.eclipse.jetty.io.ManagedSelector@4d2bfb43 id=1 keys=-1 selected=-1
16:43:59.030 [qtp1387667051-16] DEBUG o.e.j.u.t.s.ExecuteProduceConsume - EPR Idle/org.eclipse.jetty.io.ManagedSelector$SelectorProducer@43044ea7 execute
16:43:59.030 [qtp1387667051-16] DEBUG o.e.j.u.t.s.ExecuteProduceConsume - EPR Prod/org.eclipse.jetty.io.ManagedSelector$SelectorProducer@43044ea7 produce enter
16:43:59.030 [qtp1387667051-16] DEBUG o.e.j.u.t.s.ExecuteProduceConsume - EPR Prod/org.eclipse.jetty.io.ManagedSelector$SelectorProducer@43044ea7 producing
16:43:59.030 [qtp1387667051-16] DEBUG org.eclipse.jetty.io.ManagedSelector - Selector loop waiting on select
16:43:59.030 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @44859ms org.eclipse.jetty.io.ManagedSelector@4d2bfb43 id=1 keys=0 selected=0
16:43:59.030 [com.my.company.MyApp.main()] DEBUG o.e.j.util.thread.QueuedThreadPool - queue org.eclipse.jetty.io.ManagedSelector@4d2bfb43 id=1 keys=0 selected=0
16:43:59.030 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @44859ms org.eclipse.jetty.server.ServerConnector$ServerConnectorManager@5874dad4
16:43:59.046 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.ContainerLifeCycle - ServerConnector@20aa8e5e{HTTP/1.1,[http/1.1]}{0.0.0.0:12043} added {acceptor-0@5ebba302,POJO}
16:43:59.046 [com.my.company.MyApp.main()] DEBUG o.e.j.util.thread.QueuedThreadPool - queue acceptor-0@5ebba302
16:43:59.046 [com.my.company.MyApp.main()] INFO  o.e.jetty.server.ServerConnector - Started ServerConnector@20aa8e5e{HTTP/1.1,[http/1.1]}{0.0.0.0:12043}
16:43:59.046 [qtp1387667051-18] DEBUG o.e.j.util.thread.QueuedThreadPool - run org.eclipse.jetty.io.ManagedSelector@4d2bfb43 id=1 keys=0 selected=0
16:43:59.046 [qtp1387667051-18] DEBUG o.e.j.u.t.s.ExecuteProduceConsume - EPR Idle/org.eclipse.jetty.io.ManagedSelector$SelectorProducer@fb96b5f execute
16:43:59.046 [qtp1387667051-18] DEBUG o.e.j.u.t.s.ExecuteProduceConsume - EPR Prod/org.eclipse.jetty.io.ManagedSelector$SelectorProducer@fb96b5f produce enter
16:43:59.046 [qtp1387667051-18] DEBUG o.e.j.u.t.s.ExecuteProduceConsume - EPR Prod/org.eclipse.jetty.io.ManagedSelector$SelectorProducer@fb96b5f producing
16:43:59.046 [qtp1387667051-18] DEBUG org.eclipse.jetty.io.ManagedSelector - Selector loop waiting on select
16:43:59.046 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @44869ms ServerConnector@20aa8e5e{HTTP/1.1,[http/1.1]}{0.0.0.0:12043}
16:43:59.046 [com.my.company.MyApp.main()] INFO  org.eclipse.jetty.server.Server - Started @44870ms
16:43:59.046 [com.my.company.MyApp.main()] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED @44870ms org.eclipse.jetty.server.Server@46e82163
16:43:59.046 [qtp1387667051-21] DEBUG o.e.j.util.thread.QueuedThreadPool - run acceptor-0@5ebba302
16:43:59.046 [com.my.company.MyApp.main()] DEBUG org.eclipse.jetty.io.ManagedSelector - Queued change org.eclipse.jetty.io.ManagedSelector$DumpKeys@2ecca763 on org.eclipse.jetty.io.ManagedSelector@7e88ed82 id=0 keys=0 selected=0
16:43:59.046 [qtp1387667051-16] DEBUG org.eclipse.jetty.io.ManagedSelector - Selector loop woken up from select, 0/0 selected
16:43:59.061 [qtp1387667051-16] DEBUG org.eclipse.jetty.io.ManagedSelector - Running change org.eclipse.jetty.io.ManagedSelector$DumpKeys@2ecca763
16:43:59.061 [qtp1387667051-16] DEBUG org.eclipse.jetty.io.ManagedSelector - Selector loop waiting on select
16:43:59.061 [com.my.company.MyApp.main()] DEBUG org.eclipse.jetty.io.ManagedSelector - Queued change org.eclipse.jetty.io.ManagedSelector$DumpKeys@7184393a on org.eclipse.jetty.io.ManagedSelector@4d2bfb43 id=1 keys=0 selected=0
16:43:59.061 [qtp1387667051-18] DEBUG org.eclipse.jetty.io.ManagedSelector - Selector loop woken up from select, 0/0 selected
16:43:59.061 [qtp1387667051-18] DEBUG org.eclipse.jetty.io.ManagedSelector - Running change org.eclipse.jetty.io.ManagedSelector$DumpKeys@7184393a
16:43:59.061 [qtp1387667051-18] DEBUG org.eclipse.jetty.io.ManagedSelector - Selector loop waiting on select
SERVER DUMP AFTER STARTorg.eclipse.jetty.server.Server@46e82163 - STARTED
 += qtp1387667051{STARTED,8<=8<=200,i=5,q=0} - STARTED
 |   +- 15 qtp1387667051-15 TIMED_WAITING @ sun.misc.Unsafe.park(Native Method) IDLE
 |   +- 18 qtp1387667051-18 RUNNABLE @ sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
 |   +- 21 qtp1387667051-21-acceptor-0@5ebba302-ServerConnector@20aa8e5e{HTTP/1.1,[http/1.1]}{0.0.0.0:12043} RUNNABLE @ sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) prio=3
 |   +- 17 qtp1387667051-17 TIMED_WAITING @ sun.misc.Unsafe.park(Native Method) IDLE
 |   +- 22 qtp1387667051-22 TIMED_WAITING @ sun.misc.Unsafe.park(Native Method) IDLE
 |   +- 19 qtp1387667051-19 TIMED_WAITING @ sun.misc.Unsafe.park(Native Method) IDLE
 |   +- 16 qtp1387667051-16 RUNNABLE @ sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
 |   +- 20 qtp1387667051-20 TIMED_WAITING @ sun.misc.Unsafe.park(Native Method) IDLE
 += ServerConnector@20aa8e5e{HTTP/1.1,[http/1.1]}{0.0.0.0:12043} - STARTED
 |   +~ org.eclipse.jetty.server.Server@46e82163 - STARTED
 |   +~ qtp1387667051{STARTED,8<=8<=200,i=5,q=0} - STARTED
 |   += org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@701b3a08 - STARTED
 |   +- org.eclipse.jetty.io.ArrayByteBufferPool@5180c97f
 |   += HttpConnectionFactory@34c3b023[HTTP/1.1] - STARTED
 |   |   +- HttpConfiguration@4b7e1ae5{32768/8192,8192/8192,https://:0,[]}
 |   += org.eclipse.jetty.server.ServerConnector$ServerConnectorManager@5874dad4 - STARTED
 |   |   +- org.eclipse.jetty.io.ManagedSelector@7e88ed82 id=0 keys=0 selected=0 id=0
 |   |   |   +- sun.nio.ch.WindowsSelectorImpl@52619d75 keys=0
 |   |   +- org.eclipse.jetty.io.ManagedSelector@4d2bfb43 id=1 keys=0 selected=0 id=1
 |   |       +- sun.nio.ch.WindowsSelectorImpl@17e94d8 keys=0
 |   +- sun.nio.ch.ServerSocketChannelImpl[/0:0:0:0:0:0:0:0:12043]
 |   +- qtp1387667051-21-acceptor-0@5ebba302-ServerConnector@20aa8e5e{HTTP/1.1,[http/1.1]}{0.0.0.0:12043}
 += o.e.j.s.ServletContextHandler@35d5f9d6{/,null,AVAILABLE} - STARTED
 |   += org.eclipse.jetty.server.session.SessionHandler@df646c5 - STARTED
 |   |   += org.eclipse.jetty.server.session.HashSessionManager@31065a81 - STARTED
 |   |   |   += org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@7be95cba - 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.server.session.HashSessionIdManager@6da9da6b - STARTED
 |   |   += org.eclipse.jetty.servlet.ServletHandler@21a50846 - STARTED
 |   |       += org.eclipse.jetty.servlet.DefaultServlet-7a662da0@bc8f4b4a==org.eclipse.jetty.servlet.DefaultServlet,-1,false - STARTED
 |   |       +- [/*]=>org.eclipse.jetty.servlet.DefaultServlet-7a662da0
 |   |       += com.my.company.swagger.api.util.ApiOriginFilter-7802af59 - STARTED
 |   |       +- [/*]/[]==5=>com.my.company.swagger.api.util.ApiOriginFilter-7802af59
 |   |       += org.glassfish.jersey.servlet.ServletContainer-17b90e@5a8243c0==org.glassfish.jersey.servlet.ServletContainer,1,true - STARTED
 |   |       |   +- com.sun.jersey.config.feature.DisableWADL=true
 |   |       |   +- com.sun.jersey.api.json.POJOMappingFeature=true
 |   |       |   +- com.sun.jersey.config.property.packages=io.swagger.jaxrs.json;io.swagger.jaxrs;io.swagger.jaxrs.listing;com.my.company.swagger.api
 |   |       |   +- jersey.config.server.provider.classnames=org.glassfish.jersey.filter.LoggingFilter;org.glassfish.jersey.media.multipart.MultiPartFeature
 |   |       |   +- jersey.config.server.provider.packages=com.my.company.swagger.api
 |   |       |   +- com.sun.jersey.spi.container.ContainerRequestFilters=com.sun.jersey.api.container.filter.PostReplaceFilter
 |   |       +- [/api/*]=>org.glassfish.jersey.servlet.ServletContainer-17b90e
 |   |       += io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710@924f28d5==io.swagger.jersey.config.JerseyJaxrsConfig,2,true - STARTED
 |   |       |   +- api.version=1.0.0
 |   |       |   +- description=Hello World!
 |   |       |   +- swagger.api.basepath=http://localhost:12043/api
 |   |       |   +- swagger.pretty.print=true
 |   |       |   +- swagger.api.title=Swagger Server Test
 |   |       +- [/swagger-core]=>io.swagger.jersey.config.JerseyJaxrsConfig-1ad33710
 |   |       += org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-31ca6d0@17a8fe32==org.eclipse.jetty.servlet.ServletHandler$Default404Servlet,-1,false - STARTED
 |   |       +- [/]=>org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-31ca6d0
 |   |
 |   +> No ClassLoader
 |   +> Handler attributes o.e.j.s.ServletContextHandler@35d5f9d6{/,null,AVAILABLE}
 |   |   +- org.eclipse.jetty.server.Executor=qtp1387667051{STARTED,8<=8<=200,i=5,q=0}
 |   +> Context attributes o.e.j.s.ServletContextHandler@35d5f9d6{/,null,AVAILABLE}
 |   |   +- swagger.scanner.id.default=io.swagger.jaxrs.config.DefaultJaxrsScanner@393a8047
 |   |   +- org.eclipse.jetty.util.DecoratedObjectFactory=org.eclipse.jetty.util.DecoratedObjectFactory[decorators=0]
 |   +> Initparams o.e.j.s.ServletContextHandler@35d5f9d6{/,null,AVAILABLE}
 += org.eclipse.jetty.server.session.HashSessionIdManager@6da9da6b - STARTED
 |
 +> java.net.URLClassLoader@15aecd1c
     +- file:/C:/Swagger/EmbeddedJetty/generated/target/classes/
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/jhades/jhades/1.0.4/jhades-1.0.4.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/io/swagger/swagger-jersey2-jaxrs/1.5.8/swagger-jersey2-jaxrs-1.5.8.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/io/swagger/swagger-jaxrs/1.5.8/swagger-jaxrs-1.5.8.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.4.5/jackson-dataformat-xml-2.4.5.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/codehaus/woodstox/stax2-api/3.1.4/stax2-api-3.1.4.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/reflections/reflections/0.9.10/reflections-0.9.10.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/javassist/javassist/3.19.0-GA/javassist-3.19.0-GA.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/com/google/code/findbugs/annotations/2.0.1/annotations-2.0.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/io/swagger/swagger-core/1.5.8/swagger-core-1.5.8.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/slf4j/slf4j-api/1.7.21/slf4j-api-1.7.21.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.4.5/jackson-dataformat-yaml-2.4.5.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/yaml/snakeyaml/1.12/snakeyaml-1.12.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/io/swagger/swagger-models/1.5.8/swagger-models-1.5.8.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/com/google/guava/guava/18.0/guava-18.0.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/io/swagger/swagger-annotations/1.5.8/swagger-annotations-1.5.8.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/io/swagger/swagger-hibernate-validations/1.5.8/swagger-hibernate-validations-1.5.8.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/ch/qos/logback/logback-classic/1.0.1/logback-classic-1.0.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/ch/qos/logback/logback-core/1.0.1/logback-core-1.0.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/scala-lang/scala-library/2.10.6/scala-library-2.10.6.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/jersey/media/jersey-media-multipart/2.22.1/jersey-media-multipart-2.22.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/jersey/core/jersey-common/2.22.1/jersey-common-2.22.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/jersey/bundles/repackaged/jersey-guava/2.22.1/jersey-guava-2.22.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/hk2/hk2-api/2.4.0-b31/hk2-api-2.4.0-b31.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/hk2/hk2-utils/2.4.0-b31/hk2-utils-2.4.0-b31.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/hk2/external/aopalliance-repackaged/2.4.0-b31/aopalliance-repackaged-2.4.0-b31.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/hk2/hk2-locator/2.4.0-b31/hk2-locator-2.4.0-b31.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/hk2/osgi-resource-locator/1.0.1/osgi-resource-locator-1.0.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/jvnet/mimepull/mimepull/1.9.6/mimepull-1.9.6.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/jersey/media/jersey-media-json-jackson/2.22.1/jersey-media-json-jackson-2.22.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/jersey/ext/jersey-entity-filtering/2.22.1/jersey-entity-filtering-2.22.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.5.4/jackson-jaxrs-base-2.5.4.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.5.4/jackson-jaxrs-json-provider-2.5.4.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.5.4/jackson-module-jaxb-annotations-2.5.4.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/jersey/containers/jersey-container-servlet/2.22.1/jersey-container-servlet-2.22.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/jersey/core/jersey-server/2.22.1/jersey-server-2.22.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/jersey/core/jersey-client/2.22.1/jersey-client-2.22.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/jersey/media/jersey-media-jaxb/2.22.1/jersey-media-jaxb-2.22.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/javax/ws/rs/javax.ws.rs-api/2.0.1/javax.ws.rs-api-2.0.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/jersey/containers/jersey-container-servlet-core/2.22.1/jersey-container-servlet-core-2.22.1.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/glassfish/hk2/external/javax.inject/2.4.0-b31/javax.inject-2.4.0-b31.jar
     +- 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/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
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/eclipse/jetty/jetty-webapp/9.3.6.v20151106/jetty-webapp-9.3.6.v20151106.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/eclipse/jetty/jetty-xml/9.3.6.v20151106/jetty-xml-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/javax/ejb/javax.ejb-api/3.2/javax.ejb-api-3.2.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/javax/transaction/javax.transaction-api/1.2/javax.transaction-api-1.2.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/com/fasterxml/jackson/core/jackson-core/2.4.2/jackson-core-2.4.2.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/com/fasterxml/jackson/core/jackson-annotations/2.4.2/jackson-annotations-2.4.2.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/com/fasterxml/jackson/core/jackson-databind/2.4.2/jackson-databind-2.4.2.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/com/fasterxml/jackson/datatype/jackson-datatype-joda/2.1.5/jackson-datatype-joda-2.1.5.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/joda-time/joda-time/2.2/joda-time-2.2.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/com/brsanthu/migbase64/2.2/migbase64-2.2.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/springframework/spring-core/4.2.4.RELEASE/spring-core-4.2.4.RELEASE.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/springframework/spring-context/4.2.4.RELEASE/spring-context-4.2.4.RELEASE.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/springframework/spring-aop/4.2.4.RELEASE/spring-aop-4.2.4.RELEASE.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/springframework/spring-expression/4.2.4.RELEASE/spring-expression-4.2.4.RELEASE.jar
     +- file:/C:/Users/myUser/tutorialAndDemo_workspace/.m2/repository1/org/springframework/spring-beans/4.2.4.RELEASE/spring-beans-4.2.4.RELEASE.jar
     +- sun.misc.Launcher$AppClassLoader@5c647e05
16:43:59.077 [com.my.company.MyApp.main()] DEBUG com.my.company.MyApp - Printing Bonjour! Ceci est B analytique.
Bonjour! Ceci est B analytique.
16:44:27.547 [org.eclipse.jetty.server.session.HashSessionManager@31065a81Timer] DEBUG org.eclipse.jetty.server.session - Scavenging sessions at 1463517867547
16:44:57.562 [org.eclipse.jetty.server.session.HashSessionManager@31065a81Timer] DEBUG org.eclipse.jetty.server.session - Scavenging sessions at 1463517897562

To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggersocket+unsub...@googlegroups.com.

Ron Ratovsky

unread,
May 17, 2016, 4:55:28 PM5/17/16
to swagger-sw...@googlegroups.com

The first step is to get your API exposed regardless of swagger/swagger-core.

If when you get to that point you still can’t access swagger.json, then we can try to troubleshoot it.

To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggers...@googlegroups.com.


For more options, visit https://groups.google.com/d/optout.

--

You received this message because you are subscribed to the Google Groups "Swagger" group.

To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggers...@googlegroups.com.

Jennifer Coston

unread,
May 17, 2016, 5:07:10 PM5/17/16
to Swagger

I already have the swagger-core dependencies in the pom.xml. I thought I was hooking up the swagger-core to the application with this code:

ServletHolder jerseyServlet = servletContextHandler.addServlet(

   
ServletContainer.class, "/api/*");
  jerseyServlet
.setInitOrder(1);
  jerseyServlet
   
.setInitParameter(
     
"com.sun.jersey.config.property.packages",

     
"io.swagger.jaxrs.json;io.swagger.jaxrs;io.swagger.jaxrs.listing;com.my.company.swagger.api");

  jerseyServlet
.setInitParameter(
   
"com.sun.jersey.spi.container.ContainerRequestFilters",
   
"com.sun.jersey.api.container.filter.PostReplaceFilter");
  jerseyServlet
.setInitParameter(
   
"com.sun.jersey.api.json.POJOMappingFeature", "true");
  jerseyServlet
.setInitParameter(
   
"com.sun.jersey.config.feature.DisableWADL", "true");
  jerseyServlet
   
.setInitParameter(
     
"jersey.config.server.provider.classnames",
     
"org.glassfish.jersey.filter.LoggingFilter;org.glassfish.jersey.media.multipart.MultiPartFeature");
  jerseyServlet
.setInitParameter(
   
"jersey.config.server.provider.packages",
   
"com.my.company.swagger.api");


and initializing it with this code:
// Setup Swagger Servlet
 
ServletHolder swaggerServlet = servletContextHandler.addServlet(
   
JerseyJaxrsConfig.class, "/swagger-core");
  swaggerServlet
.setInitOrder(2);
  swaggerServlet
.setInitParameter("api.version", "1.0.0");
  swaggerServlet
.setInitParameter("description", "Hello World!");
  swaggerServlet
.setInitParameter("swagger.api.title",
   
"Swagger Server Test");
  swaggerServlet
.setInitParameter("swagger.api.basepath",
   
"http://localhost:" + SERVER_PORT + "/api");
  swaggerServlet
.setInitParameter("swagger.pretty.print", "true");


Am I missing a step?

Ron Ratovsky

unread,
May 17, 2016, 5:36:16 PM5/17/16
to swagger-sw...@googlegroups.com

If you can’t access your API, that’s not related to swagger-core.

If that’s the case and you remove all dependencies and configs of swagger-core your API should still not be accessible.

In that case, you first need to make sure your API is accessible before expecting to see the swagger-core output.

At the end of the day, swagger-core just exposes another JAX-RS endpoint that provides you with the spec.

 

 

 

From: <swagger-sw...@googlegroups.com> on behalf of Jennifer Coston <jnco...@gmail.com>
Reply-To: "swagger-sw...@googlegroups.com" <swagger-sw...@googlegroups.com>
Date: Tuesday, 17 May 2016 at 14:07
To: Swagger <swagger-sw...@googlegroups.com>
Subject: Re: Swagger UI on Embedded Jetty Won't Display

 

--

Jennifer Coston

unread,
May 17, 2016, 5:50:58 PM5/17/16
to Swagger
That response was a little confusing. I think you are saying that this line:

ServletHolder swaggerServlet = servletContextHandler.addServlet(                               JerseyJaxrsConfig.class, "/swagger-core");


shouldn't reference "/swagger-core".

I was trying to convert the following web.xml file to configuration for embedded jetty. Is there a better way to do this?
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:j2ee="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <servlet>
  <servlet-name>jersey</servlet-name>
  <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
  <init-param>
   <param-name>com.sun.jersey.config.property.packages</param-name>
   <param-value>io.swagger.jaxrs.json;com.my.company.swagger.api;io.swagger.jaxrs.listing</param-value>
  </init-param>
  <init-param>
   <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
   <param-value>com.sun.jersey.api.container.filter.PostReplaceFilter</param-value>
  </init-param>
  <init-param>
   <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
   <param-value>true</param-value>
  </init-param>
  <init-param>
   <param-name>com.sun.jersey.config.feature.DisableWADL</param-name>
   <param-value>true</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>jersey</servlet-name>
  <url-pattern>/api/*</url-pattern>
 </servlet-mapping>
 <servlet>
  <servlet-name>Jersey2Config</servlet-name>
  <servlet-class>io.swagger.jersey.config.JerseyJaxrsConfig</servlet-class>
  <init-param>
   <param-name>api.version</param-name>
   <param-value>1.0.0</param-value>
  </init-param>
  <init-param>
   <param-name>swagger.api.basepath</param-name>
   <param-value>http://localhost:12034/api</param-value>
  </init-param>
  <init-param>
   <param-name>swagger.api.title</param-name>
   <param-value>Swagger Server Test</param-value>
  </init-param>
  <init-param>
   <param-name>swagger.pretty.print</param-name>
   <param-value>true</param-value>
  </init-param>
  <load-on-startup>2</load-on-startup>
 </servlet>
 
 <servlet>
  <servlet-name>Bootstrap</servlet-name>
  <servlet-class>com.my.company.swagger.api.util.Bootstrap</servlet-class>
  <load-on-startup>2</load-on-startup>
 </servlet>
 
 <filter>
  <filter-name>ApiOriginFilter</filter-name>
  <filter-class>com.my.company.swagger.api.util.ApiOriginFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>ApiOriginFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
</web-app>

I thought that the functionality of the Bootstrap class (below) would be replaced by the creation and configuration of the Jetty Server in the main method. Is there additional code that should be added to the main method? There is very little documentation about using embedded Jetty with Swagger, so any help you can provide would be greatly appreciated.

package com.my.company.swagger.api.util;
import io.swagger.jaxrs.config.SwaggerContextService;
import io.swagger.models.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Bootstrap extends HttpServlet {
 
 private static final Logger LOGGER = LoggerFactory.getLogger(Bootstrap.class);

 private static ApplicationContext appContext = new AnnotationConfigApplicationContext("com.my.company");
 /**
  * Initialize Swagger.
  */
 @Override
 public void init(ServletConfig config) throws ServletException {
  //Note: the title of the API page must be changed/set in the web.xml file
  Info info = new Info()
    .description("Hello World!").termsOfService("")
    .contact(new Contact().email(""))
    .license(new License().name("").url(""));
  ServletContext context = config.getServletContext();
  Swagger swagger = new Swagger().info(info);
  new SwaggerContextService().withServletConfig(config).updateSwagger(
    swagger);

  
 }
 
 public static ApplicationContext getApplicationContext(){
  return appContext;  
 }
 
 
}



On Tuesday, May 17, 2016 at 5:36:16 PM UTC-4, Ron wrote:

Ron Ratovsky

unread,
May 17, 2016, 5:55:09 PM5/17/16
to swagger-sw...@googlegroups.com

I’m talking about swagger-core as a library, not as the name you chose for the servlet’s endpoint.

In short – the problem you’re describing doesn’t seem to be related to swagger at all. If your API isn’t exposed, you need to resolve that first.

We can keep going back and forth on this – but that’s the first thing to resolve. You need to make sure your API itself is exposed.

After that we can move on to any issues related to swagger.

 

 

From: <swagger-sw...@googlegroups.com> on behalf of Jennifer Coston <jnco...@gmail.com>
Reply-To: "swagger-sw...@googlegroups.com" <swagger-sw...@googlegroups.com>
Date: Tuesday, 17 May 2016 at 14:50
To: Swagger <swagger-sw...@googlegroups.com>
Subject: Re: Swagger UI on Embedded Jetty Won't Display

 

That response was a little confusing. I think you are saying that this line:

--

Jennifer Coston

unread,
May 17, 2016, 6:02:49 PM5/17/16
to Swagger
You keep using that phrase "make sure your api is exposed" without explaining how to go about it. I have followed the steps on the Swagger-Core github page for setting up the application with swagger by adding the dependencies to the application, hooking up swagger core, configuring swagger, and initializing it. I know that the annotations in the code are working because a compile time I can generate a swagger.json file using the swagger-maven-plugin. My jetty server starts and seems to be running. The only thing I can't figure out how to do is to determine if the json file generated at runtime actually exists. The server obviously can't see it since I'm getting 404 errors. Can you please provide directions?

To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggersocket+unsub...@googlegroups.com.

Ron Ratovsky

unread,
May 17, 2016, 6:21:47 PM5/17/16
to swagger-sw...@googlegroups.com

Got it, maybe I wasn’t clear.

You’ve written an API regardless of swagger (or swagger-core) that’s running with embedded jetty.

When running the application, are you able to execute any of the endpoint that your API exposes?

I’m basically asking if you can access your own API when you run the app.

To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggers...@googlegroups.com.


For more options, visit https://groups.google.com/d/optout.

--

You received this message because you are subscribed to the Google Groups "Swagger" group.

To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggers...@googlegroups.com.

Jennifer Coston

unread,
May 17, 2016, 6:53:36 PM5/17/16
to Swagger
Ah, that makes sense. No, when I try to go to http://localhost:12043/api/hello I get a 404 there too. I'm thinking it is probably because I no longer have the code in the Bootstrap class. I haven't changed anything in my HelloApi, HelloApiService, HelloApiServiceFactory, or HelloApiServiceImpl classes. Does that sound correct?

To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggersocket+unsub...@googlegroups.com.


For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Swagger" group.

To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggersocket+unsub...@googlegroups.com.

Ron Ratovsky

unread,
May 17, 2016, 6:56:19 PM5/17/16
to swagger-sw...@googlegroups.com

That’s what I meant earlier – none of the swagger-related code should affect your application. Should you remove all dependencies and swagger-related code, your API will still probably not be accessible, indicating this is not a swagger-related issue.

This is probably due to the embedded jetty configuration, but that’s not something I can help with.

Once you get to the point that your API is actually accessible, if you have issues accessing the swagger.json as well, then I’d be able to assist in troubleshooting.

To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggers...@googlegroups.com.


For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Swagger" group.

To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggers...@googlegroups.com.


For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Swagger" group.

To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggers...@googlegroups.com.

Jennifer Coston

unread,
May 17, 2016, 7:00:29 PM5/17/16
to swagger-sw...@googlegroups.com

Okay, thanks for looking into it. At least I have a better idea of how to trouble shoot it.

- Jennifer

You received this message because you are subscribed to a topic in the Google Groups "Swagger" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/swagger-swaggersocket/mfdDUO1ulu8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to swagger-swaggers...@googlegroups.com.

Jennifer Coston

unread,
May 18, 2016, 1:31:03 PM5/18/16
to Swagger
Hi again,

I got the embedded Jetty configuration fixed and I can now get to the api and the swagger.json file. However, I cannot load the Swagger UI. It is still giving me a 404 error. Is this something you can help with?

Here is my updated MyApp.java class:

package com.my.company;

import java.util.EnumSet;
import javax.servlet.DispatcherType;
import io.swagger.jersey.config.JerseyJaxrsConfig;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.glassfish.jersey.server.ServerProperties;
import org.glassfish.jersey.servlet.ServletContainer;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.my.company.swagger.api.HelloApiService;

public class MyApp {
 private static final Logger LOGGER = LoggerFactory.getLogger(MyApp.class);

 private static final int SERVER_PORT = 12043;
 private static ApplicationContext applicationContext;

 public static void main(String[] args) throws Exception {
  
  applicationContext = new AnnotationConfigApplicationContext("com.my.company");

  // Create Embedded Jetty server
  Server jettyServer = new Server(SERVER_PORT);
  // Add ServletContextHandler
  ServletContextHandler servletContextHandler = new ServletContextHandler(
    ServletContextHandler.SESSIONS);
  servletContextHandler.setContextPath("/");
  jettyServer.setHandler(servletContextHandler);
  
  //Add API Origin Filter
  servletContextHandler.addFilter("com.my.company.swagger.api.util.ApiOriginFilter", "/*",
    EnumSet.of(DispatcherType.INCLUDE, DispatcherType.REQUEST));
  // Use a servlet holder to manage Jersey services
  // Setup API resources
  ServletHolder jerseyServlet = new ServletHolder(new ServletContainer());
  jerseyServlet.setInitOrder(1);

  jerseyServlet.setInitParameter(
    "com.sun.jersey.spi.container.ContainerRequestFilters",
    "com.sun.jersey.api.container.filter.PostReplaceFilter");
  jerseyServlet.setInitParameter(
    "com.sun.jersey.api.json.POJOMappingFeature", "true");
  jerseyServlet.setInitParameter(ServerProperties.PROVIDER_PACKAGES, "io.swagger.jaxrs.json;io.swagger.jaxrs;io.swagger.jaxrs.listing;com.my.company.swagger.api");
  jerseyServlet.setInitParameter(ServerProperties.WADL_FEATURE_DISABLE,"true");
  jerseyServlet.setInitParameter(ServerProperties.PROVIDER_CLASSNAMES, "org.glassfish.jersey.filter.LoggingFilter;org.glassfish.jersey.media.multipart.MultiPartFeature");
  servletContextHandler.addServlet(jerseyServlet, "/api/*");
  
  // Setup Swagger Servlet

  ServletHolder swaggerServlet = servletContextHandler.addServlet(
    JerseyJaxrsConfig.class, "/swagger-core");
  swaggerServlet.setInitOrder(2);
  swaggerServlet.setInitParameter("api.version", "1.0.0");
  swaggerServlet.setInitParameter("description", "Hello World!");
  swaggerServlet.setInitParameter("swagger.api.title",
    "Swagger Server Test");
  swaggerServlet.setInitParameter("swagger.api.basepath",
    "http://localhost:" + SERVER_PORT + "/api");
  swaggerServlet.setInitParameter("swagger.pretty.print", "true");
  
  jettyServer.setHandler(servletContextHandler);
  // Start the server
  jettyServer.start();
  System.out.println("SERVER DUMP AFTER START" + jettyServer.dump());
  testHello();
  jettyServer.join();
  
 }
 /**
  * Test the hello functionality to make sure it is working
  */
 private static void testHello() {
  HelloApiService helloApiService = (HelloApiService) applicationContext

    .getBean("HelloApiService");
  LOGGER.debug("Printing {}", helloApiService.getHelloApi());
  System.out.println(helloApiService.getHelloApi());
 }
 /**
  * @return the applicationContext

  */
 public static ApplicationContext getApplicationContext() {
  LOGGER.debug("Getting Application Context", applicationContext);
  return applicationContext;
 }
}

Thanks again for all of your help!
-Jennifer

Jennifer Coston

unread,
May 18, 2016, 2:37:34 PM5/18/16
to Swagger
I found this topic thread on the Google Group that seems to be addressing the same issue I'm having. I modified my code to add in the SwaggerInitializer class with the @WebListener as suggested however, I am still seeing a 404 error. I too added a log statement that never seems to be printed. I noticed that the fix in the thread was to change the URL as the context there was set to /v1 but, mine is set to / so I'm still unsure why it isn't working. I've tried going to http://localhost:12043/api/api-docs, http://localhost:12043/api/, http://localhost:12043/api-docs, and http://localhost:12043/ but they all show a 404 Error.

Here is the updated main:
package com.my.company;
import java.util.EnumSet;
import javax.servlet.DispatcherType;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import io.swagger.jaxrs.config.BeanConfig;
import io.swagger.jersey.config.JerseyJaxrsConfig;
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.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.glassfish.jersey.server.ServerProperties;
import org.glassfish.jersey.servlet.ServletContainer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.my.company.swagger.api.HelloApiService;
public class MyApp {
 private static final Logger LOGGER = LoggerFactory.getLogger(MyApp.class);
 private static final int HTTP_SERVER_PORT = 12043;
 private static ApplicationContext applicationContext;
 private static Server jettyServer;
 public static void main(String[] args) throws Exception {
  // Instantiate the application context for use by the other classes

  applicationContext = new AnnotationConfigApplicationContext(
    "com.my.company");
  System.out.println("**** Application Context = "
    + applicationContext.toString());
  start();
  testHello();
  // 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()
  jettyServer.join();
 }
 /**
  * Start the Jetty server and configure the servlets
  *
  * @throws Exception
  */
 public static void start() throws Exception {

  // Create Embedded Jetty server
  jettyServer = new Server();
  //jettyServer = new Server(SERVER_PORT);
  // Configure for Http
   HttpConfiguration http_config = new HttpConfiguration();
   http_config.setSecureScheme("https");
   http_config.setSecurePort(8443);
   http_config.setOutputBufferSize(32768);
  
   ServerConnector http = new ServerConnector(jettyServer,
   new HttpConnectionFactory(http_config));
   http.setPort(HTTP_SERVER_PORT);
   http.setIdleTimeout(30000);
   jettyServer.addConnector(http);
  // Add ServletContextHandler
  ServletContextHandler servletContextHandler = new ServletContextHandler(
    ServletContextHandler.SESSIONS);
  servletContextHandler.setContextPath("/");
  jettyServer.setHandler(servletContextHandler);
  // Add API Origin Filter

  servletContextHandler.addFilter(
    "com.my.company.swagger.api.util.ApiOriginFilter", "/*",
    EnumSet.of(DispatcherType.INCLUDE, DispatcherType.REQUEST));
  // Setup API resources (Jersey)

  ServletHolder jerseyServlet = new ServletHolder(new ServletContainer());
  jerseyServlet.setInitOrder(1);
  jerseyServlet.setInitParameter(
    "com.sun.jersey.spi.container.ContainerRequestFilters",
    "com.sun.jersey.api.container.filter.PostReplaceFilter");
  jerseyServlet.setInitParameter(
    "com.sun.jersey.api.json.POJOMappingFeature", "true");
  jerseyServlet
    .setInitParameter(
      ServerProperties.PROVIDER_PACKAGES,
      "io.swagger.jaxrs.json;io.swagger.jaxrs;io.swagger.jaxrs.listing;com.my.company.swagger.api");
  jerseyServlet.setInitParameter(ServerProperties.WADL_FEATURE_DISABLE,
    "true");
  jerseyServlet
    .setInitParameter(
      ServerProperties.PROVIDER_CLASSNAMES,
      "org.glassfish.jersey.filter.LoggingFilter;org.glassfish.jersey.media.multipart.MultiPartFeature");
  servletContextHandler.addServlet(jerseyServlet, "/api/*");
  jettyServer.setHandler(servletContextHandler);
  // Start the server
  jettyServer.start();
 }
 /**
  * Stop the jetty server
  *
  * @throws Exception
  */
 public static void stop() throws Exception {
  jettyServer.stop();
  jettyServer.destroy();
 }
 /**
  * Test the hello functionality to make sure it is working
  */
 private static void testHello() {
  HelloApiService helloApiService = (HelloApiService) applicationContext
    .getBean("HelloApiService");
  LOGGER.debug("Printing {}", helloApiService.getHelloApi());
  System.out.println(helloApiService.getHelloApi());
 }
 /**
  * @return the applicationContext
  */
 public static ApplicationContext getApplicationContext() {
  LOGGER.debug("Getting Application Context", applicationContext);
  return applicationContext;
 }
}

And the new Swagger Initializer:

package com.my.company.swagger.api.util;
import io.swagger.jaxrs.config.BeanConfig;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@WebListener
public class SwaggerInitializer implements ServletContextListener {
 
 private static final Logger LOGGER = LoggerFactory.getLogger(SwaggerInitializer.class);
    public void contextInitialized(ServletContextEvent servletContextEvent) {
     LOGGER.debug("######### Configuring Swagger with BeanConfig #########");
        BeanConfig beanConfig = new BeanConfig();
        beanConfig.setVersion( "1.0.0" );
        beanConfig.setResourcePackage( "com.my.company.swagger.api" );
        beanConfig.setBasePath( "http://localhost:12043/api-docs" );
        beanConfig.setDescription( "Hello World!" );
        beanConfig.setTitle( "Swagger Test Server" );
        beanConfig.setScan( true );
    }
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
    } 
}
Reply all
Reply to author
Forward
0 new messages