2010-11-20 16 views
20

mogę odwiedzić .html stron z Jetty, ale kiedy odwiedzam stronę .jsp uzyskać:wsparcie Konfigurowanie Jetty JSP w trybie osadzonych w projekcie Maven

0/13:21:13 [INFO] Nie Obsługa JSP. Sprawdź, słoiki JSP są w lib/JSP i że opcja JSP został określony do start.jar

dodałem odpowiednio następujące 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> 

robi spełnić „Sprawdź że słoje JSP są w lib/jsp "częścią komunikatu o błędzie?

Ponadto, nie mam pojęcia, co oznacza "sprawdź, czy opcja JSP została określona jako start.jar" w tym kontekście. Mam następujący:

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(); 
    } 

Odpowiedz

17

Dostałem go do pracy dodając zależność Mortbay JSP (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' 

Jest larger writeup available on my blog.

+1

Molo 8 obsługuje jsp 2.2. W pomost hightide 8.0.0 dystrybucji obejmują one następujące w JSP reż: 'com.sun.el_2.2.0.v201105051105.jar' ' javax.el_2.2.0.v201105051105.jar' 'javax.servlet. jsp.jstl_1.2.0.v201004190952.jar' 'javax.servlet.jsp_2.2.0.v201103241009.jar'' org.apache.jasper.glassfish_2.2.2.v201108011116.jar' 'org.apache.taglibs.standard.glassfish_1.2.0 .v201004190952.jar' Zakładam, że to zapewni wsparcie jsp 2.2. Minusem jest wiele słoików, które można śledzić. Zastanawiam się, kiedy molo będzie miało molo-jsp.jar? Byłoby to z pewnością miłe! –

+1

W rzeczywistości dystrybucja molo również ma te zależności. Można je znaleźć pod następującym adresem: [http://download.eclipse.org/jetty/orbit] Pom pom dystrybucji dystrybucji słoiki pod tym adresem URL i pakuje je w katalogu lib dystrybucji. –

+1

Wow, wypróbowałem wszystkie rozwiązania poniżej, które spowodowały wiele brakujących klas: ExpressionFactory i więcej. To był jedyny, który po prostu pracował –

10

Wiem, że odpowiedź została udzielona jakiś czas temu. Nie mogłem uzyskać odpowiedzi od Bena McCanna, żeby dla mnie pracował. Jednakże, 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> 

dziwo, to nie zostało poparte wersji 6.1.24 I pierwotnie miał.

Więc w sumie, że popełnił mój pom.xml wyglądać następująco:

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 start (który dodałem w folderze \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(); 
      } 
     } 
    } 
} 

}

+0

Działa to tylko dla Jetty 6 i starszych. Jest dość stary, ponieważ Jetty 8 jest już prawie gotowy. Zaktualizowałem swoją odpowiedź, aby zapewnić lepsze rozwiązanie, więc przyjrzyj się jeszcze raz. –

+0

To wciąż jest cenna odpowiedź, ponieważ np. Solr jest dostarczany z pomostem 6. Możesz po prostu dodać 'org.mortbay.jetty: jsp-2.1: 6.1.14' do swojego POM i połączyć go z każdą wersją 6 pomostu. Centrala Maven nie ma wersji 6.1.26 jsp-2.1. – Maddin

10

Zrobiłem to bez użycia słoiki z dystrybucji Jetty, używając tylko Maven zależności:

<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> 
6

Opierając się 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> 
1

Po przeczytaniu tej strony stackoverflow (dobra robota), jak również http://wiki.eclipse.org/Jetty/Howto/Configure_JSP, w końcu dostał to do pracy, jak również. Ponieważ moja konfiguracja jest nieco inna, pomyślałem, że przyczynię się do tego.Mam wbudowany instalację Jetty 8 bez „javac” kompilator, i mam go do pracy przy użyciu kompilatora Eclipse i ustawienie właściwości systemu przed utworzeniem serwera, na przykład:

System.setProperty("org.apache.jasper.compiler.disablejsr199", "true"); 
Server server = new Server(); 

i stosując następujące Maven 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> 
Powiązane problemy