diff options
author | Jan Bartel | 2014-08-01 06:16:26 +0000 |
---|---|---|
committer | Jan Bartel | 2014-08-01 06:16:26 +0000 |
commit | 424de52d96dd099b3437510669565f691f7c35f9 (patch) | |
tree | 9af24c01e92af13c106f39d7b8f20fbfb5a4c1c7 /examples | |
parent | 75c92bf76ae8e9be26a341fac1c01201ec706973 (diff) | |
download | org.eclipse.jetty.project-424de52d96dd099b3437510669565f691f7c35f9.tar.gz org.eclipse.jetty.project-424de52d96dd099b3437510669565f691f7c35f9.tar.xz org.eclipse.jetty.project-424de52d96dd099b3437510669565f691f7c35f9.zip |
411163 Add embedded jetty code example with JSP enabled
Diffstat (limited to 'examples')
-rw-r--r-- | examples/embedded/pom.xml | 10 | ||||
-rw-r--r-- | examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebAppWithJsp.java | 80 |
2 files changed, 90 insertions, 0 deletions
diff --git a/examples/embedded/pom.xml b/examples/embedded/pom.xml index 4dbab32188..a5e4caae99 100644 --- a/examples/embedded/pom.xml +++ b/examples/embedded/pom.xml @@ -81,6 +81,16 @@ <artifactId>jetty-proxy</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>apache-jsp</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>apache-jstl</artifactId> + <version>${project.version}</version> + </dependency> <dependency> <groupId>org.eclipse.jetty.toolchain</groupId> <artifactId>jetty-test-helper</artifactId> diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebAppWithJsp.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebAppWithJsp.java new file mode 100644 index 0000000000..90565d8a51 --- /dev/null +++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebAppWithJsp.java @@ -0,0 +1,80 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.embedded; + +import java.lang.management.ManagementFactory; + +import org.eclipse.jetty.jmx.MBeanContainer; +import org.eclipse.jetty.security.HashLoginService; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.webapp.WebAppContext; + +public class OneWebAppWithJsp +{ + public static void main(String[] args) throws Exception + { + // Create a basic jetty server object that will listen on port 8080. Note that if you set this to port 0 then + // a randomly available port will be assigned that you can either look in the logs for the port, + // or programmatically obtain it for use in test cases. + Server server = new Server(8080); + + // Setup JMX + MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer()); + server.addBean(mbContainer); + + // The WebAppContext is the entity that controls the environment in which a web application lives and + // breathes. In this example the context path is being set to "/" so it is suitable for serving root context + // requests and then we see it setting the location of the war. A whole host of other configurations are + // available, ranging from configuring to support annotation scanning in the webapp (through + // PlusConfiguration) to choosing where the webapp will unpack itself. + WebAppContext webapp = new WebAppContext(); + webapp.setContextPath("/"); + webapp.setWar("../../jetty-distribution/target/distribution/demo-base/webapps/test.war"); + + // This webapp will use jsps and jstl. We need to enable the AnnotationConfiguration in order to correctly + // set up the jsp container + org.eclipse.jetty.webapp.Configuration.ClassList classlist = org.eclipse.jetty.webapp.Configuration.ClassList.setServerDefault(server); + classlist.addBefore("org.eclipse.jetty.webapp.JettyWebXmlConfiguration", "org.eclipse.jetty.annotations.AnnotationConfiguration"); + + // Set the ContainerIncludeJarPattern so that jetty examines these container-path jars for tlds, web-fragments etc. + // If you omit the jar that contains the jstl .tlds, the jsp engine will scan for them instead. + webapp.setAttribute("org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern", + ".*/[^/]*servlet-api-[^/]*\\.jar$|.*/javax.servlet.jsp.jstl-.*\\.jar$|.*/[^/]*taglibs.*\\.jar$"); + + + // A WebAppContext is a ContextHandler as well so it needs to be set to the server so it is aware of where to + // send the appropriate requests. + server.setHandler(webapp); + + // Configure a LoginService + // Since this example is for our test webapp, we need to setup a LoginService so this shows how to create a + // very simple hashmap based one. The name of the LoginService needs to correspond to what is configured in + // the webapp's web.xml and since it has a lifecycle of its own we register it as a bean with the Jetty + // server object so it can be started and stopped according to the lifecycle of the server itself. + HashLoginService loginService = new HashLoginService(); + loginService.setName("Test Realm"); + loginService.setConfig("src/test/resources/realm.properties"); + server.addBean(loginService); + + // Start things up! By using the server.join() the server thread will join with the current thread. + // See "http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#join()" for more details. + server.start(); + server.join(); + } +} |