2

私は Heroku のサイトで JAX-RS チュートリアルを始めていました->

http://arcane-chamber-8582.herokuapp.com/

主な方法は次のようになります。

package com.example;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;

/**
 *
 * This class launches the web application in an embedded Jetty container.
 * This is the entry point to your application. The Java command that is used for
 * launching should fire this main method.
 *
 */
public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception{
        String webappDirLocation = "src/main/webapp/";

        // The port that we should run on can be set into an environment variable
        // Look for that variable and default to 8080 if it isn't there.
        String webPort = System.getenv("PORT");
        if (webPort == null || webPort.isEmpty()) {
            webPort = "8080";
        }

        Server server = new Server(Integer.valueOf(webPort));
        WebAppContext root = new WebAppContext();

        root.setContextPath("/");
        root.setDescriptor(webappDirLocation + "/WEB-INF/web.xml");
        root.setResourceBase(webappDirLocation);

        // Parent loader priority is a class loader setting that Jetty accepts.
        // By default Jetty will behave like most web containers in that it will
        // allow your application to replace non-server libraries that are part of the
        // container. Setting parent loader priority to true changes this behavior.
        // Read more here: http://wiki.eclipse.org/Jetty/Reference/Jetty_Classloading
        root.setParentLoaderPriority(true);

        server.setHandler(root);

        server.start();
        server.join();
    }

}

サーバーとルートで何が起こっているのか誰か説明してくれませんか? このプロセスに dyno を割り当てると、RESTful 要求を処理するためにスレッド プールに複数の要求スレッドが自動的に作成されますか? もしそうなら、共有されている/共有されていない部分はどれですか?

ありがとう!

4

1 に答える 1

2

Jetty は、そのシナリオでデフォルトを使用しているだけです (Jetty のデフォルトであり、Heroku のデフォルトではありません)。次のように変更できます。

Jetty で setThreadPool() を使用する方法

于 2012-10-27T16:24:19.930 に答える