文档章节

Nutz-plugins-undertow插件试用笔记

黄道坤
 黄道坤
发布于 2017/07/21 16:44
字数 465
阅读 97
收藏 0

本人特别喜欢在折腾这件事上浪费生命!

手上有一个基于Maven的Web项目,Web框架用的Nutz,最近不是Nutzmore出了新版,我就看了一下,发现这个Undertow很厉害的样子,就打算试一试。

那么淌坑的经历就开始了。

首先,我用了WebSocket,插件(Nutz-plugins-undertow)并没有特别说明用法,看了一下源码,最后在WebLancher的start方法里,自己添加了一个WebSocket的HttpHandler。

-----------小分分--------------

//添加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);

------------小分分----------------

然后还算顺利,到了打包的时候了,作者提供了一个相关的Pom文件例子和命令,不过因为我项目里还夹杂了一些Kotlin代码(好奇心忒重),我添加了Kotlin的编译相关的配置,不过一直没办法把页面及其相关的东西放进去,尝试过多次,最后只有自己配置一个webRoot地址了,也可以写死,随你便。 具体的pom文件如下:

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

最后执行

mvn clean package -U

就可以了 然后

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

最后说明一下,这个“你的web目录” 是传递给WebConfig里的setRoot方法的,你可以用你喜欢的方式来插入!

还有其他坑,遇到再补充了。

© 著作权归作者所有

共有 人打赏支持
黄道坤
粉丝 1
博文 5
码字总数 13828
作品 0
成都
程序员
NutzMore 1.r.62 发布,Nutz 官方插件集

更新内容: add: nutz-plugins-wkcache 方法缓存插件 by @Wizzer add: nutz-integration-bex5 集成插件 by @muyu add: nutz-plugins-undertow 插件 by @qinerg add: nutz-plugins-recur 插件......

wendal
2017/07/18
387
2
Wendal/nutzmore

nutzmore Nutz的插件与扩展 各种官方插件的集合 每个插件都有自己的文件夹,均为maven module, 请按需获取. org.nutz填nutz插件名1.r.59 快照版地址 https://jfrog.nutz.cn/artifactory/snap...

Wendal
2015/08/29
0
0
NutzBoot 2.0-RC 添加 undertow/模板引擎/ngrok 支持

NutzBoot 2.0-RC已发布。 首先,必须高亮一下@qinerg提交的starter-undertow,嗷嗷嗷. Jetty与Undertow任意切换^^ 模板引擎(beetl和jetx)的starter已经完成,所以移除了starter-jetty的jsp依赖....

wendal
2017/12/01
598
17
NutzBoot v2.1.7 新增 maven 插件和 mqtt-client

NutzBoot v2.1.7 已发布,更新如下: 新增maven插件和mqtt支持 时间: 2018-05-04 事件: 青年节 曲目: Penguin's Game 兼容性: 与2.0.x和2.1.x完全兼容 变更: fix: 修改jetty热加载无效问题 ...

wendal
05/04
0
0
NUTZ-ONEKEY vue 版发布,自动生成后台接口文档

nutz-onekey vue 版本发布了. 主要包含以下惊喜: VUE 版本界面,使用 element 构建的 spa 界面 使用 maven-exec 插件直接打包执行 npm 打包 使用 maven-resource 插件直接打webjars 使用 se...

Kerbores
2017/05/25
1K
12

没有更多内容

加载失败,请刷新页面

加载更多

Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
4
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0
搞定Northwind示例数据库,无论哪个版本的SQLServer都受用

Northwind数据库 从这里可以找到突破口: http://social.msdn.microsoft.com/Forums/zh-CN/Vsexpressvb/thread/8490a1c6-9018-40c9-aafb-df9f79d29cde 下面是MSDN: http://msdn2.microsoft......

QQZZFT
昨天
1
0
mysql主从同步,安装配置操作

准备 两台mysql服务,我这里准备了如下: 主库:192.168.176.128 从库:192.168.176.131 如何在Linux上安装mysql服务,请看https://blog.csdn.net/qq_18860653/article/details/80250499 操作...

小致dad
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部