21

Jettyで.htmlページにアクセスできますが、.jspページにアクセスすると次のようになります。

0 13:21:13 /[INFO]JSPはサポートされていません。JSPjarがlib/jspにあり、JSPオプションがstart.jarに指定されていることを確認してください

依存関係として以下を追加しました。

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

これは、エラーメッセージの「JSPjarがlib / jspにあることを確認する」部分を満たしていますか?

また、このコンテキストで「start.jarにJSPオプションが指定されていることを確認する」とはどういう意味かわかりません。私は次のものを持っています:

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

6 に答える 6

17

Mortbay JSP依存関係を追加することで機能するようになりました(これはGradle表記ですが、アイデアは得られます)。

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'

私のブログにはもっと大きな記事があります。

于 2010-11-20T22:39:14.767 に答える
10

私はこれが少し前に答えられたことを知っています。私はベン・マッキャンから私のために働くための答えを得ることができませんでした。ただし、JSPサポートをJettyに直接追加して、運が良かったです。

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

不思議なことに、これは私が最初に持っていたバージョン6.1.24ではサポートされていませんでした。

したがって、全体として、私のpom.xmlは次のようになります。

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>

と私のスタートクラス(私はフォルダに追加しました\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 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();
            }
        }
    }
}

}

于 2011-02-07T11:08:19.003 に答える
10

Jettyディストリビューションのjarを使用せずに、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>
于 2011-12-13T14:11:52.857 に答える
6

Simon Huetの優れた答えに基づいて、これが私の見解です。

<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>
于 2011-12-21T18:43:27.943 に答える
1

このstackoverflowページ(素晴らしい仕事)とhttp://wiki.eclipse.org/Jetty/Howto/Configure_JSPを読んだ後、私はついにこれも機能するようになりました。私の設定は少し違うので、私は貢献したいと思いました。'javac'コンパイラを使用せずにJetty8を組み込み、サーバーを作成する前にeclipseコンパイラを使用してシステムプロパティを設定することで、次のように動作させることができます。

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

そして、次のMaven構成を使用します。

<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>
于 2013-09-03T19:44:49.280 に答える
1

Jetty 9.1.3、http: //www.eclipse.org/jetty/documentation/current/configuring-jsp.html 、そしてjetty-jspを追加するだけでうまくいきました(さらにURLからのweb.xml構成)。桟橋groupId(つまり、mortbay)の外部からjarファイルを追加する必要はありません。

于 2014-03-19T22:30:35.057 に答える