Как встроить Tomcat 6?

Я думаю, вам нужно map, если вы хотите выполнить операцию для каждого объекта в массиве.

points.map(x => x + Math.random()/1000) добавил бы случайное крошечное число.

Но вы можете выполнять любую функцию, какую захотите, после части x =>. Может быть, что-то вроде

points.map(myfunc), и вы можете определить myfunc как добавить .0001 или добавить .0002 на основе некоторого условия.

57
задан Cœur 25 July 2018 в 01:59
поделиться

3 ответа

Code говорит за себя. Посмотрите отрывок pom.xml и класс для выполнения кота.

    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>catalina</artifactId>
        <version>6.0.18</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>coyote</artifactId>
        <version>6.0.18</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>jasper</artifactId>
        <version>6.0.18</version>
        <scope>test</scope>
    </dependency>


public class RunWebApplicationTomcat {

    private String path = null;
    private Embedded container = null;
    private Log logger = LogFactory.getLog(getClass());

    /**
     * The directory to create the Tomcat server configuration under.
     */
    private String catalinaHome = "tomcat";

    /**
     * The port to run the Tomcat server on.
     */
    private int port = 8089;

    /**
     * The classes directory for the web application being run.
     */
    private String classesDir = "target/classes";

    /**
     * The web resources directory for the web application being run.
     */
    private String webappDir = "mywebapp";

    /**
     * Creates a single-webapp configuration to be run in Tomcat on port 8089. If module name does
     * not conform to the 'contextname-webapp' convention, use the two-args constructor.
     * 
     * @param contextName without leading slash, for example, "mywebapp"
     * @throws IOException
     */
    public RunWebApplicationTomcat(String contextName) {
        Assert.isTrue(!contextName.startsWith("/"));
        path = "/" + contextName;
    }

    /**
     * Starts the embedded Tomcat server.
     * 
     * @throws LifecycleException
     * @throws MalformedURLException if the server could not be configured
     * @throws LifecycleException if the server could not be started
     * @throws MalformedURLException
     */
    public void run(int port) throws LifecycleException, MalformedURLException {
        this.port = port;
        // create server
        container = new Embedded();
        container.setCatalinaHome(catalinaHome);
        container.setRealm(new MemoryRealm());

        // create webapp loader
        WebappLoader loader = new WebappLoader(this.getClass().getClassLoader());

        if (classesDir != null) {
            loader.addRepository(new File(classesDir).toURI().toURL().toString());
        }

        // create context
        // TODO: Context rootContext = container.createContext(path, webappDir);
        Context rootContext = container.createContext(path, webappDir);
        rootContext.setLoader(loader);
        rootContext.setReloadable(true);

        // create host
        // String appBase = new File(catalinaHome, "webapps").getAbsolutePath();
        Host localHost = container.createHost("localHost", new File("target").getAbsolutePath());
        localHost.addChild(rootContext);

        // create engine
        Engine engine = container.createEngine();
        engine.setName("localEngine");
        engine.addChild(localHost);
        engine.setDefaultHost(localHost.getName());
        container.addEngine(engine);

        // create http connector
        Connector httpConnector = container.createConnector((InetAddress) null, port, false);
        container.addConnector(httpConnector);

        container.setAwait(true);

        // start server
        container.start();

        // add shutdown hook to stop server
        Runtime.getRuntime().addShutdownHook(new Thread() {
            public void run() {
                stopContainer();
            }
        });
    }
    /**
     * Stops the embedded Tomcat server.
     */
    public void stopContainer() {
        try {
            if (container != null) {
                container.stop();
            }
        } catch (LifecycleException exception) {
            logger.warn("Cannot Stop Tomcat" + exception.getMessage());
        }
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    public static void main(String[] args) throws Exception {
        RunWebApplicationTomcat inst = new RunWebApplicationTomcat("mywebapp");
        inst.run(8089);
    }

    public int getPort() {
        return port;
    }

}
40
ответ дан Antonio 24 November 2019 в 19:45
поделиться

Это может помочь.

Если вы загрузите пакет с исходным кодом для Tomcat6.x, вы получите этот класс:

http://tomcat.apache.org/tomcat-6.0- doc / api / org / apache / catalina / startup / Catalina.html # main (java.lang.String [])

Это пример того, как использовать класс Embedd: это оболочка для остановки | запуска определенного Установка Tomcat. (Я имею в виду, что вы можете настроить CATALINA_BASE так, чтобы он указывал на существующую установку Tomcat).

Если вы скомпилируете это, вы можете запустить его так:

java -D "catalina.base =% CATALINA_BASE% "-D" catalina.home =% CATALINA_HOME% "org.apache.catalina.startup.Catalina start

Я пока не знаю, как изменить этот код для выключения сервера!

2
ответ дан 24 November 2019 в 19:45
поделиться

Есть ряд причин, по которым можно использовать Tomcat вместо Jetty:

  1. Один уже знаком с Tomcat
  2. Один разрабатывает веб-приложения, которые должны быть легко переносится в установку Tomcat
  3. Документация разработчика Jetty на самом деле хуже, чем у Tomcat (удивительно!)
  4. Получение ответов на вопросы сообщества Jetty иногда может занять годы, как в 2007 году. см. Embedding Jetty
  5. Важно: После Jetty 6.1. * Каждое веб-приложение открывается в своей собственной JVM, поэтому, если вы пытаетесь получить программный доступ между автономным доступом и веб-приложением, ваша единственная надежда - через веб-API.
  6. Если вас это беспокоит, Tomcat - это проект с открытым исходным кодом, интеллектуальная собственность которого принадлежит Apache Foundation, Jetty - это открытый код, но принадлежит небольшой частной компании (Mortbay Consulting).

Пункт № 5 был важным в моей работе. Например, я могу получить прямой доступ к экземпляру JSPWiki через Tomcat, но он полностью недоступен при использовании Jetty. Я попросил решить эту проблему в 2007 году и еще не получил ответа. В конце концов я сдался и начал использовать Tomcat 6. Я изучал Glassfish и Grizzly, но пока что Tomcat (на удивление) самый стабильный и хорошо документированный веб-контейнер (что на самом деле мало что говорит).

Tomcat - это проект с открытым исходным кодом, интеллектуальная собственность которого принадлежит Apache Foundation, Jetty - это проект с открытым исходным кодом, но принадлежит небольшой частной компании (Mortbay Consulting)

Пункт № 5 был важным в моей работе. Например, я могу получить прямой доступ к экземпляру JSPWiki через Tomcat, но он полностью недоступен при использовании Jetty. Я попросил решить эту проблему в 2007 году и еще не получил ответа. В конце концов я сдался и начал использовать Tomcat 6. Я изучал Glassfish и Grizzly, но пока что Tomcat (на удивление) самый стабильный и хорошо документированный веб-контейнер (что на самом деле мало что говорит).

Tomcat - это проект с открытым исходным кодом, интеллектуальная собственность которого принадлежит Apache Foundation, Jetty - это проект с открытым исходным кодом, но принадлежит небольшой частной компании (Mortbay Consulting)

Пункт № 5 был важным в моей работе. Например, я могу получить прямой доступ к экземпляру JSPWiki через Tomcat, но он полностью недоступен при использовании Jetty. Я попросил решить эту проблему в 2007 году и еще не получил ответа. В конце концов я сдался и начал использовать Tomcat 6. Я изучал Glassfish и Grizzly, но пока что Tomcat (на удивление) самый стабильный и хорошо документированный веб-контейнер (что на самом деле мало что говорит).

но это совершенно недоступно при использовании Jetty. Я попросил решить эту проблему в 2007 году и еще не получил ответа. В конце концов я сдался и начал использовать Tomcat 6. Я изучал Glassfish и Grizzly, но пока что Tomcat (на удивление) самый стабильный и хорошо документированный веб-контейнер (что на самом деле мало что говорит).

но это совершенно недоступно при использовании Jetty. Я попросил решить эту проблему в 2007 году и еще не получил ответа. В конце концов я сдался и начал использовать Tomcat 6. Я изучал Glassfish и Grizzly, но пока что Tomcat (на удивление) самый стабильный и хорошо документированный веб-контейнер (что на самом деле мало что говорит).

11
ответ дан 24 November 2019 в 19:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: