2010-11-20 9 views
20

posso visitare .html pagine con molo, ma quando visito una pagina .jsp ottengo:Configurazione del supporto Jetty JSP in modalità incorporata nel progetto Maven

0 13:21:13/[INFO] No Supporto JSP. Controllare che vasetti JSP sono in lib/jsp e che l'opzione JSP è stata specificata a start.jar

ho aggiunto il seguente come dipendenze:

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

fa che soddisfano il "controllo che i jar JSP sono in lib/jsp "parte del messaggio di errore?

Inoltre, non ho idea di cosa significhi "verificare che l'opzione JSP sia stata specificata per start.jar" in questo contesto. Ho il seguente:

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

risposta

17

ho preso a lavorare con l'aggiunta della dipendenza Mortbay JSP (questo è in Gradle la notazione, ma si ottiene l'idea):

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' 

C'è una larger writeup available on my blog.

+1

Jetty 8 supporta il jsp 2.2. Nel molo HighTide 8.0.0 distro includono quanto segue nella dir jsp: '' 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' Suppongo che questo fornirà il supporto per jsp 2.2. Il rovescio della medaglia è questo un sacco di barattoli per tenere traccia di. Mi chiedo quando il molo avrà un jetty-jsp.jar? Sarebbe sicuramente carino! –

+1

In realtà, anche la distribuzione dei moli ha queste dipendenze. Possono essere trovati al seguente url: [http://download.eclipse.org/jetty/orbit] Il pom della distribuzione del jetty scarica i vasi a quell'url e li impacchetta nella directory lib della distribuzione. –

+1

Wow, ho provato tutte le soluzioni in basso che hanno causato un sacco di classi mancanti: ExpressionFactory e altro ancora. Questo era l'unico che funzionava semplicemente –

10

So che questo è stato risposto qualche tempo fa. Non sono riuscito a ottenere la risposta da Ben McCann a lavorare per me. Tuttavia, ho avuto la fortuna aggiungendo il supporto JSP direttamente al molo con l'aggiunta di

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

Stranamente, questo non è stato supportato dalla versione 6.1.24 Inizialmente avevo.

Quindi, in totale, che ha reso il mio pom.xml simile a questa:

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> 

e la mia classe di partenza (che ho aggiunto nella cartella \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 Inizio {

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

Questo funziona solo per Jetty 6 e precedenti. È piuttosto vecchio da quando Jetty 8 è quasi uscito adesso. Ho aggiornato la mia risposta per fornire una soluzione migliore, quindi dai un altro sguardo. –

+0

Questa è ancora una risposta valida, poiché ad es. Solr viene fornito con jetty 6. Puoi semplicemente aggiungere 'org.mortbay.jetty: jsp-2.1: 6.1.14' al tuo POM e combinarlo con qualsiasi versione di jetty 6. Il centro Maven non ha la versione 6.1.26 di jsp-2.1. – Maddin

10

ho fatto senza usare i barattoli dalla distribuzione Jetty, utilizzando le dipendenze solo Maven:

<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

Basandosi sull'eccellente risposta di Simon Huet, ecco la mia risposta:

<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

Dopo aver letto questa pagina StackOverflow (bel lavoro), così come http://wiki.eclipse.org/Jetty/Howto/Configure_JSP, finalmente ho questo lavoro pure. Dato che la mia configurazione è leggermente diversa, ho pensato di contribuire di nuovo.Ho un'installazione ad incasso Jetty 8 senza il compilatore 'javac', e ho preso a lavorare utilizzando il compilatore Eclipse e impostando la proprietà di sistema prima di creare il server, in questo modo:

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

E utilizzando la seguente Maven configurazione:

<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> 
Problemi correlati