Nano Frameworkの増加Jetty組み込みサポート


本文は前の文章に基づいて改善して、前の文章の内容を理解する必要があるのはここを訪問してください
1、pom.xmlにnano-server依存を追加
1.1、依存

<dependency>
    <groupId>org.nanoframework</groupId>
    <artifactId>nano-server</artifactId>
    <version>1.2.0-RC1</version>
    <exclusions>
        <exclusion>
            <groupId>org.glassfish.web</groupId>
            <artifactId>javax.el</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.glassfish.web</groupId>
            <artifactId>javax.servlet.jsp</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.eclipse.jetty.orbit</groupId>
            <artifactId>javax.servlet</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>javax.el</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>javax.servlet.jsp</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <scope>provided</scope>
</dependency>

1.2、resources

<build>
...
<resources>
...
    <resource>
        <directory>src/main/webapp</directory>
        <targetPath>${project.basedir}/webRoot/</targetPath>
    </resource>
...
</resources>
...
</build>

2.WEB-INFにjettyを追加する.xmlとwebdefault.xml
2.1、jetty.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<Configure id="Server" class="org.eclipse.jetty.server.Server">
    <Set name="ThreadPool">
        <!-- Default queued blocking threadpool -->
        <New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
            <Set name="minThreads">5</Set>
            <Set name="maxThreads">200</Set>
            <Set name="detailedDump">false</Set>
        </New>
    </Set>

    <Call name="addConnector">
        <Arg>
            <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
                <Set name="host">
                    <Property name="jetty.host" />
                </Set>
                <Set name="port">
                    <Property name="jetty.port" default="8081" />
                </Set>
                <Set name="maxIdleTime">300000</Set>
                <Set name="Acceptors">2</Set>
                <Set name="statsOn">false</Set>
                <Set name="confidentialPort">8443</Set>
                <Set name="lowResourcesConnections">20000</Set>
                <Set name="lowResourcesMaxIdleTime">5000</Set>
            </New>
        </Arg>
    </Call>
</Configure>

2.2、webdefault.xml
長すぎてここにリストされていませんので、原文の2.2の構成にアクセスしてください.
3、org.nanoframework.examples.first.Webappでイニシエータを追加

import org.nanoframework.server.JettyCustomServer;

public class Startup {
    public static void main(String[] args) {
        JettyCustomServer server = JettyCustomServer.DEFAULT;
        new Thread(() -> { server.startServer(); }).start();
    }
}

4、これで内蔵Jettyが完成し、Startupを実行してアクセスするhttp://ip:port/first-webapp/first/hello