From f206f03133c4ffb114179862d74e13c1de0c5727 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sun, 9 Apr 2017 02:50:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D1=8B=D0=B5=20=D0=BD?= =?UTF-8?q?=D0=B0=D0=B1=D1=80=D0=BE=D1=81=D0=BA=D0=B8=20WebApp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 20 +++++++ .../kinosearch/kinosearch3/webpp/Main.java | 16 +++++ .../kinosearch3/webpp/SpringConfig.java | 19 ++++++ .../kinosearch3/webpp/SpringMvcConfig.java | 14 +++++ .../kinosearch/kinosearch3/webpp/WebApp.java | 60 +++++++++++++++++++ .../kinosearch3/webpp/WebAppController.java | 19 ++++++ src/main/resources/application.properties | 5 +- 7 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 src/main/java/kinosearch/kinosearch3/webpp/Main.java create mode 100644 src/main/java/kinosearch/kinosearch3/webpp/SpringConfig.java create mode 100644 src/main/java/kinosearch/kinosearch3/webpp/SpringMvcConfig.java create mode 100644 src/main/java/kinosearch/kinosearch3/webpp/WebApp.java create mode 100644 src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java diff --git a/pom.xml b/pom.xml index 9814911..d3920cd 100644 --- a/pom.xml +++ b/pom.xml @@ -23,6 +23,7 @@ 2.5 4.3.7.RELEASE 1.10.1.RELEASE + 9.4.0.v20161208 @@ -83,6 +84,25 @@ + + + org.eclipse.jetty + jetty-server + ${jetty.version} + + + org.eclipse.jetty + jetty-webapp + ${jetty.version} + + + + + org.springframework + spring-webmvc + ${spring.version} + + commons-io diff --git a/src/main/java/kinosearch/kinosearch3/webpp/Main.java b/src/main/java/kinosearch/kinosearch3/webpp/Main.java new file mode 100644 index 0000000..81af9b2 --- /dev/null +++ b/src/main/java/kinosearch/kinosearch3/webpp/Main.java @@ -0,0 +1,16 @@ +/* + * DmitriyMX + * 2017-04-09 + */ +package kinosearch.kinosearch3.webpp; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +public class Main { + public static void main(String[] args) { + ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class); + WebApp webApp = ctx.getBean("webapp", WebApp.class); + webApp.start(); + } +} diff --git a/src/main/java/kinosearch/kinosearch3/webpp/SpringConfig.java b/src/main/java/kinosearch/kinosearch3/webpp/SpringConfig.java new file mode 100644 index 0000000..77d17b6 --- /dev/null +++ b/src/main/java/kinosearch/kinosearch3/webpp/SpringConfig.java @@ -0,0 +1,19 @@ +/* + * DmitriyMX + * 2017-04-09 + */ +package kinosearch.kinosearch3.webpp; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + +@Configuration +@PropertySource("classpath:/application.properties") +public class SpringConfig { + @Bean + public WebApp webapp(@Value("${webapp.host}") String host, @Value("${webapp.port}") int port) { + return new WebApp(host, port); + } +} \ No newline at end of file diff --git a/src/main/java/kinosearch/kinosearch3/webpp/SpringMvcConfig.java b/src/main/java/kinosearch/kinosearch3/webpp/SpringMvcConfig.java new file mode 100644 index 0000000..846b21b --- /dev/null +++ b/src/main/java/kinosearch/kinosearch3/webpp/SpringMvcConfig.java @@ -0,0 +1,14 @@ +/* + * DmitriyMX + * 2017-04-09 + */ +package kinosearch.kinosearch3.webpp; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@EnableWebMvc +public class SpringMvcConfig extends WebMvcConfigurerAdapter { +} diff --git a/src/main/java/kinosearch/kinosearch3/webpp/WebApp.java b/src/main/java/kinosearch/kinosearch3/webpp/WebApp.java new file mode 100644 index 0000000..696b77e --- /dev/null +++ b/src/main/java/kinosearch/kinosearch3/webpp/WebApp.java @@ -0,0 +1,60 @@ +/* + * DmitriyMX + * 2017-04-09 + */ +package kinosearch.kinosearch3.webpp; + +import lombok.Getter; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletHolder; +import org.eclipse.jetty.util.log.Log; +import org.eclipse.jetty.util.log.Slf4jLog; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.context.ContextLoaderListener; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; +import org.springframework.web.servlet.DispatcherServlet; + +import java.net.InetSocketAddress; + +public class WebApp { + private final Logger logger = LoggerFactory.getLogger(WebApp.class); + @Getter + private final String host; + @Getter + private final int port; + + public WebApp(String host, int port) { + this.host = host; + this.port = port; + } + + void start() { + Log.setLog(new Slf4jLog("Jetty.Logger")); + Server server = new Server(new InetSocketAddress(host, port)); + server.setHandler(getServletContextHandler(getContext())); + try { + server.start(); + server.join(); + } catch (Exception e) { + logger.error("Start server", e); + } + } + + private ServletContextHandler getServletContextHandler(WebApplicationContext context) { + ServletContextHandler contextHandler = new ServletContextHandler(); + contextHandler.setErrorHandler(null); + contextHandler.setContextPath("/"); + contextHandler.addServlet(new ServletHolder(new DispatcherServlet(context)), "/*"); + contextHandler.addEventListener(new ContextLoaderListener(context)); + return contextHandler; + } + + private WebApplicationContext getContext() { + AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); + context.setConfigLocation("kinosearch.kinosearch3.webpp"); + return context; + } +} diff --git a/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java b/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java new file mode 100644 index 0000000..00fa0d2 --- /dev/null +++ b/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java @@ -0,0 +1,19 @@ +/* + * DmitriyMX + * 2017-04-09 + */ +package kinosearch.kinosearch3.webpp; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class WebAppController { + @RequestMapping(value = "/", method = RequestMethod.GET) + @ResponseBody + public String hello() { + return "hello...?"; + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3b1b093..10b614c 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,4 +1,7 @@ mongo.host=127.0.0.1 mongo.port=27017 mongo.db=kinosearch -saveRootDir=R:\\ \ No newline at end of file +saveRootDir=R:\\ + +webapp.host=127.0.0.1 +webapp.port=8080 \ No newline at end of file