嵌入式jetty9启动标准webapp目录

来源:互联网 发布:js radio disabled 编辑:程序博客网 时间:2024/06/05 18:42
package com.doctor.embeddedjetty;import java.net.URISyntaxException;import java.util.concurrent.TimeUnit;import org.eclipse.jetty.server.Server;import org.eclipse.jetty.webapp.WebAppContext;/** * 标准spring 配置(java config) 嵌入式jetty9启动,支持jsp试图,标准webapp目录,测试用例看 * {@link EmbeddedJettyServer4ForWebappTest} EmbeddedJettyServer4ForWebappTest * @author doctor * * @since 2015年1月6日 下午10:40:16 */public class EmbeddedJettyServer4ForWebapp {private int port;private String resourceBase;private Server server;public EmbeddedJettyServer4ForWebapp(String resourceBase) {this(8080, resourceBase);}public EmbeddedJettyServer4ForWebapp(int port,String resourceBase) {this.resourceBase = resourceBase;this.port = port;init();}/** *  * @param port * @param resourceBase 注:这里是相对路径,web src/test/resources路径,绝对路径没判断 * @param springRootConfiguration * @param springMvcConfiguration */public void init() {server = new Server(port);WebAppContext context = new WebAppContext();context.setContextPath("/");try {context.setResourceBase(this.getClass().getResource(resourceBase).toURI().toASCIIString());} catch (URISyntaxException e) {// TODO Auto-generated catch blocke.printStackTrace();}server.setHandler(context);}public void start() throws Exception {if (server != null) {if (server.isStarting() || server.isStarted() || server.isRunning()) {return;}}TimeUnit.SECONDS.sleep(3);server.start();}public void stop() throws Exception {if (server != null) {if (server.isRunning()) {server.stop();}}}public void join() throws InterruptedException {if (server != null) {server.join();}}}
测试用例
<pre name="code" class="java">package com.doctor.embeddedjetty;import org.apache.http.client.fluent.Request;import org.apache.http.client.fluent.Response;import org.junit.Test;public class EmbeddedJettyServer4ForWebappTest {@Testpublic void test() throws Throwable{EmbeddedJettyServer4ForWebapp server = new EmbeddedJettyServer4ForWebapp(8789,"/embeddedJettyServer4ForWebapp");server.start();Response response = Request.Get("http://localhost:8789/jetty/test.html").execute();System.out.println(response.returnContent().asString());response = Request.Get("http://localhost:8789/jetty/test.json").execute();System.out.println(response.returnContent().asString());server.stop();}}


输出:

01-10 10:23:36.627 main  INFO  o.e.j.u.log -Logging initialized @503ms01-10 10:23:39.728 main  INFO  o.e.j.s.Server -jetty-9.3.0.M101-10 10:23:39.850 main  INFO  / -Initializing Spring root WebApplicationContext01-10 10:23:39.850 main  INFO  o.s.w.c.ContextLoader -Root WebApplicationContext: initialization started01-10 10:23:39.939 main  INFO  o.s.w.c.s.XmlWebApplicationContext -Refreshing Root WebApplicationContext: startup date [Sat Jan 10 10:23:39 CST 2015]; root of context hierarchy01-10 10:23:39.995 main  INFO  o.s.b.f.x.XmlBeanDefinitionReader -Loading XML bean definitions from class path resource [embeddedJettyServer4ForWebapp/config/spring-context.xml]01-10 10:23:40.099 main  INFO  o.s.w.c.ContextLoader -Root WebApplicationContext: initialization completed in 249 ms01-10 10:23:40.211 main  INFO  / -Initializing Spring FrameworkServlet 'dispatcherServlet'01-10 10:23:40.211 main  INFO  o.s.w.s.DispatcherServlet -FrameworkServlet 'dispatcherServlet': initialization started01-10 10:23:40.214 main  INFO  o.s.w.c.s.XmlWebApplicationContext -Refreshing WebApplicationContext for namespace 'dispatcherServlet-servlet': startup date [Sat Jan 10 10:23:40 CST 2015]; parent: Root WebApplicationContext01-10 10:23:40.215 main  INFO  o.s.b.f.x.XmlBeanDefinitionReader -Loading XML bean definitions from class path resource [embeddedJettyServer4ForWebapp/config/spring-controller.xml]01-10 10:23:40.718 main  INFO  o.s.w.s.m.m.a.RequestMappingHandlerMapping -Mapped "{[/jetty/test.html || /jetty/test.json],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.ModelAndView com.doctor.embeddedjetty.EmbeddedJettyServerController.test2()01-10 10:23:40.721 main  INFO  o.s.w.s.m.m.a.RequestMappingHandlerMapping -Mapped "{[/],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.doctor.embeddedjetty.SimpleController.hello()01-10 10:23:40.722 main  INFO  o.s.w.s.m.m.a.RequestMappingHandlerMapping -Mapped "{[/embeddedJettyServer2Test],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.doctor.embeddedjetty.SImpleController2.getMessage()01-10 10:23:40.841 main  INFO  o.s.w.s.m.m.a.RequestMappingHandlerAdapter -Looking for @ControllerAdvice: WebApplicationContext for namespace 'dispatcherServlet-servlet': startup date [Sat Jan 10 10:23:40 CST 2015]; parent: Root WebApplicationContext01-10 10:23:40.882 main  INFO  o.s.w.s.m.m.a.RequestMappingHandlerAdapter -Looking for @ControllerAdvice: WebApplicationContext for namespace 'dispatcherServlet-servlet': startup date [Sat Jan 10 10:23:40 CST 2015]; parent: Root WebApplicationContext01-10 10:23:40.935 main  INFO  o.s.w.s.h.SimpleUrlHandlerMapping -Root mapping to handler of type [class org.springframework.web.servlet.mvc.ParameterizableViewController]01-10 10:23:41.020 main  INFO  o.s.w.s.DispatcherServlet -FrameworkServlet 'dispatcherServlet': initialization completed in 808 ms01-10 10:23:41.020 main  INFO  o.e.j.s.h.ContextHandler -Started o.e.j.w.WebAppContext@63787180{/,file:///home/doctor/workspace-sts-3.6.2.RELEASE/doctor/springmvc-practice/target/test-classes/embeddedJettyServer4ForWebapp/,AVAILABLE}01-10 10:23:41.026 main  INFO  o.e.j.s.ServerConnector -Started ServerConnector@24111ef1{HTTP/1.1,[http/1.1]}{0.0.0.0:8789}01-10 10:23:41.027 main  INFO  o.e.j.s.Server -Started @4905ms<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>hello jetty test for webapp /jettytest/test/jsp</body></html>{"hashMap":{"test":"json","test-html":"html","what":"what"}}01-10 10:23:42.001 main  INFO  o.e.j.s.ServerConnector -Stopped ServerConnector@24111ef1{HTTP/1.1,[http/1.1]}{0.0.0.0:8789}01-10 10:23:42.002 main  INFO  / -Destroying Spring FrameworkServlet 'dispatcherServlet'01-10 10:23:42.002 main  INFO  o.s.w.c.s.XmlWebApplicationContext -Closing WebApplicationContext for namespace 'dispatcherServlet-servlet': startup date [Sat Jan 10 10:23:40 CST 2015]; parent: Root WebApplicationContext01-10 10:23:42.012 main  INFO  / -Closing Spring root WebApplicationContext01-10 10:23:42.013 main  INFO  o.s.w.c.s.XmlWebApplicationContext -Closing Root WebApplicationContext: startup date [Sat Jan 10 10:23:39 CST 2015]; root of context hierarchy01-10 10:23:42.016 main  INFO  o.e.j.s.h.ContextHandler -Stopped o.e.j.w.WebAppContext@63787180{/,file:///home/doctor/workspace-sts-3.6.2.RELEASE/doctor/springmvc-practice/target/test-classes/embeddedJettyServer4ForWebapp/,UNAVAILABLE}


0 0