Konfigurowanie obsługi Jetty JSP w trybie embedded w projekcie Maven
Mogę cię odwiedzić .strony html z Jetty, ale kiedy odwiedzam .stronę JSP dostaję:
0 13:21:13 / [INFO] Brak obsługi JSP. Sprawdź, czy JSP jest w lib/jsp i że opcja JSP została określona na początek.jar
Dodałem jako zależności:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>8.0.0.M1</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
Czy to spełnia "sprawdź, czy JSP jars są w lib / jsp" część komunikatu o błędzie?
Również, nie mam pojęcia, co " sprawdź, czy opcja JSP została określona, aby rozpocząć.jar " oznacza w tym kontekście. Mam następujące:
public static void main(String[] args) throws Exception {
Server server = new Server();
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(8080);
server.addConnector(connector);
WebAppContext webApp = new WebAppContext();
webApp.setContextPath("/");
webApp.setWar("src/main/webapp");
server.setHandler(webApp);
server.start();
server.join();
}
6 answers
Mam go do pracy dodając zależność Mortbay JSP (to jest w notacji Gradle, ale masz pomysł):
compile 'org.eclipse.jetty:jetty-io:8.0.0.M3'
compile 'org.eclipse.jetty:jetty-server:8.0.0.M3'
compile 'org.eclipse.jetty:jetty-servlet:8.0.0.M3'
compile 'org.eclipse.jetty:jetty-util:8.0.0.M3'
compile 'org.eclipse.jetty:jetty-webapp:8.0.0.M3'
compile 'org.mortbay.jetty:jsp-2.1-glassfish:2.1.v20100127'
Istnieje większy writeup dostępny na moim blogu .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-07 05:25:11
Zrobiłem to bez użycia słoików z dystrybucji Jetty, używając tylko zależności Mavena:
<properties>
<jetty.version>8.1.0.RC0</jetty.version>
<glassfish.javax.version>2.2.3</glassfish.javax.version>
<glassfish.javax-impl.version>2.2</glassfish.javax-impl.version>
<glassfish.jstl.version>1.2</glassfish.jstl.version>
</properties>
<dependencies>
<!-- Jetty Webapp-->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>${jetty.version}</version>
</dependency>
<!-- JSP Support -->
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.servlet.jsp</artifactId>
<version>${glassfish.javax.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jsp-impl</artifactId>
<version>${glassfish.javax-impl.version}</version>
</dependency>
<!-- EL Support -->
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.el</artifactId>
<version>${glassfish.javax.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>${glassfish.javax-impl.version}</version>
</dependency>
<!-- JSTL Support -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${glassfish.jstl.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jstl-impl</artifactId>
<version>${glassfish.jstl.version}</version>
</dependency>
</dependencies>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-13 14:11:52
Wiem, że odpowiedź na to pytanie została udzielona jakiś czas temu. Nie mogłem uzyskać odpowiedzi od Bena Mccanna, żeby pracował dla mnie. Jednak miałem szczęście, dodając obsługę JSP bezpośrednio do Jetty, dodając
<!--jsp support for jetty, add the 2 following -->
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-2.1</artifactId>
<version>6.1.14</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-api-2.1</artifactId>
<version>6.1.14</version>
<type>jar</type>
</dependency>
O dziwo, nie było to obsługiwane przez wersję 6.1.24, którą pierwotnie miałem.
W sumie to mój pom.xml wygląda tak:Http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0
<groupId>wikiproject</groupId> <artifactId>wikiproject</artifactId> <version>1.0-SNAPSHOT</version> <properties> <jetty.version>6.1.14</jetty.version> </properties> <!-- Jetty dependencies --> <dependencies> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId> <version>${jetty.version}</version> <type>jar</type> </dependency> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-util</artifactId> <version>${jetty.version}</version> <type>jar</type> </dependency> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-plus</artifactId> <version>${jetty.version}</version> <type>jar</type> </dependency> <!--jsp support for jetty, add the 2 following --> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jsp-2.1</artifactId> <version>${jetty.version}</version> <type>jar</type> </dependency> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jsp-api-2.1</artifactId> <version>${jetty.version}</version> <type>jar</type> </dependency> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant-antlr</artifactId> <version>1.7.1</version> </dependency> </dependencies>
I moja klasa startowa (którą dodałem do folderu \src\test\java\com\company\wikiproject
)
package com.company.wikiproject; import org.mortbay.jetty.Connector; import org.mortbay.jetty.Server; import org.mortbay.jetty.bio.SocketConnector; import org.mortbay.jetty.webapp.WebAppContext; /** * User: Jesper Rønn-Jensen * start wiki pages */
Public class Start {
public static void main(String[] args) { Server jettyServer = null; try { jettyServer = new Server(); SocketConnector conn = new SocketConnector(); conn.setPort(8080); jettyServer.setConnectors(new Connector[]{conn}); WebAppContext context = new WebAppContext(); context.setContextPath("/"); context.setWar("src/main/webapp"); jettyServer.setHandler(context); jettyServer.start(); } catch (Exception ignore) { if (jettyServer != null) { try { jettyServer.stop(); } catch (Exception e1) { e1.printStackTrace(); } } } }
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-30 13:22:25
Bazując na doskonałej odpowiedzi Simona Hueta, oto moje zdanie:
<properties>
<bundle.name>nsb-${project.version}</bundle.name>
<glassfish.javax.version>2.2.3</glassfish.javax.version>
<glassfish.javax-jstl.version>1.2.1</glassfish.javax-jstl.version>
</properties>
<dependencies>
<!-- Jetty Webapp -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>${jetty.version}</version>
</dependency>
<!-- JSP Support -->
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.servlet.jsp</artifactId>
<version>${glassfish.javax.version}</version>
</dependency>
<!-- EL Support -->
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.el</artifactId>
<version>${glassfish.javax.version}</version>
</dependency>
<!-- JSTL Support -->
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.servlet.jsp.jstl</artifactId>
<version>${glassfish.javax-jstl.version}</version>
<exclusions>
<exclusion>
<artifactId>jstl-api</artifactId>
<groupId>javax.servlet.jsp.jstl</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-21 18:43:27
Po przeczytaniu tej strony stackoverflow (niezła robota) jak i http://wiki.eclipse.org/Jetty/Howto/Configure_JSP , w końcu to też zadziałało. Ponieważ mój config jest nieco inny, pomyślałem, że się przyczyni. Mam wbudowaną instalację Jetty 8 bez kompilatora 'javac' i mam ją do działania używając kompilatora eclipse i ustawiając właściwość systemową przed utworzeniem serwera, tak:
System.setProperty("org.apache.jasper.compiler.disablejsr199", "true");
Server server = new Server();
I używając następującego Mavena konfiguracja:
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-servlet_3.0_spec</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.orbit</groupId>
<artifactId>javax.el</artifactId>
<version>2.2.0.v201108011116</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.orbit</groupId>
<artifactId>javax.servlet.jsp</artifactId>
<version>2.2.0.v201112011158</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.orbit</groupId>
<artifactId>javax.servlet.jsp.jstl</artifactId>
<version>1.2.0.v201105211821</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.orbit</groupId>
<artifactId>org.apache.jasper.glassfish</artifactId>
<version>2.2.2.v201112011158</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.orbit</groupId>
<artifactId>org.apache.taglibs.standard.glassfish</artifactId>
<version>1.2.0.v201112081803</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.orbit</groupId>
<artifactId>org.eclipse.jdt.core</artifactId>
<version>3.7.1</version>
</dependency>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-03 19:44:49
Jetty 9.1.3, http://www.eclipse.org/jetty/documentation/current/configuring-jsp.html, a samo dodanie jetty-jsp zadziałało dla mnie (plus sieć.XML config z adresu url). Nie trzeba dodawać słoików spoza Molo groupId (tj. mortbay).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-19 22:30:35