Nutz-plugins-undertow插件試用筆記

本人特別喜歡在折騰這件事上浪費生命!java

手上有一個基於Maven的Web項目,Web框架用的Nutz,最近不是Nutzmore出了新版,我就看了一下,發現這個Undertow很厲害的樣子,就打算試一試。web

那麼淌坑的經歷就開始了。apache

首先,我用了WebSocket,插件(Nutz-plugins-undertow)並無特別說明用法,看了一下源碼,最後在WebLancher的start方法裏,本身添加了一個WebSocket的HttpHandler。websocket

-----------小分分--------------框架

//添加WebSocket的Handler
        PathHandler pathHandler = Handlers.path().addPrefixPath("/myWebsocket", websocket(new WebSocketConnectionCallback() {
            @Override
            public void onConnect(WebSocketHttpExchange exchange, WebSocketChannel channel) {
                channel.getReceiveSetter().set(new AbstractReceiveListener() {
                    @Override
                    protected void onFullTextMessage(WebSocketChannel channel, BufferedTextMessage message) {
                        //這就是服務端向客戶端發送消息的方法
                        WebSockets.sendText(message.getData(), channel, null);
                    }
                });
                channel.resumeReceives();
            }
        })).addPrefixPath(contextPath, servletHandler);

------------小分分----------------socket

而後還算順利,到了打包的時候了,做者提供了一個相關的Pom文件例子和命令,不過由於我項目裏還夾雜了一些Kotlin代碼(好奇心忒重),我添加了Kotlin的編譯相關的配置,不過一直沒辦法把頁面及其相關的東西放進去,嘗試過屢次,最後只有本身配置一個webRoot地址了,也能夠寫死,隨你便。 具體的pom文件以下:maven

<build>
        <sourceDirectory>src/main/org</sourceDirectory>
        <finalName>ROOT</finalName>
        <plugins>
            <plugin>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-maven-plugin</artifactId>
                <version>${org.jetbrains.kotlin.kotlin-stdlib-jre8.version}</version>
                <executions>
                    <execution>
                        <id>compile</id>
                        <phase>process-sources</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>your main class</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

最後執行ide

mvn clean package -U

就能夠了 而後ui

java -jar xx.jar "你的web目錄"

最後說明一下,這個「你的web目錄」 是傳遞給WebConfig裏的setRoot方法的,你能夠用你喜歡的方式來插入!插件

還有其餘坑,遇到再補充了。

相關文章
相關標籤/搜索