netty和tomcat如何一起使用??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了netty和tomcat如何一起使用??相关的知识,希望对你有一定的参考价值。

首先,谢谢你的回答,那请问怎样将一个netty服务部署到远程服务器上呢??谢谢。。

参考技术A 首先 创建一个 bean 然后用Spring 加载那个bean ,这个bean 的ini方法 就是初始化netty的内容什么解码什么的 自定义处理类什么的,然后启动TOMCAT的时候默认 去加载他。就完事咯。 参考技术B 两个没有直接关系吧 netty应该是类似mina的网络框架 而tomcat是servlet容器

如何使用 maven 将我的 web 应用程序和 tomcat 打包在一起?

【中文标题】如何使用 maven 将我的 web 应用程序和 tomcat 打包在一起?【英文标题】:How do I package my web app and tomcat together using maven? 【发布时间】:2011-07-30 01:49:18 【问题描述】:

我想分发我的应用程序,打包为嵌入在 Apache Tomcat 中的 WAR。那就是我想将 Tomcat 与我的应用程序一起分发。

如何用 Maven 完成这种分发打包?

我见过Maven Cargo Plugin,但它似乎适合在本地容器中部署应用程序。也许我需要对 Cargo 插件多做一步。 cargo:package 似乎很有趣,但缺少文档。

【问题讨论】:

你见过maven assembly plugin吗? docs.codehaus.org/display/MAVENUSER/Delivery+with+Tomcat 不,现在检查。感谢您的链接 请记住,将您的应用程序与 Tomcat 一起打包可能意味着您的用户不会使用最新版本的 Tomcat。 Tomcat 也需要安装 Java (JRE)。如果您包含 Tomcat,还可以包含 JRE。 @Tomasz:你知道你提到的文章中的“独立模块”是什么意思吗? 意思是“与你的其他模块分开”,就在它们旁边的某个地方。看起来本文的作者正在将单独的 Tomcat JAR 聚合为构建 Tomcat 发行版的单个项目的依赖项。您可能会使其更简单一点,只需手动 ZIP Tomcat 并将其安装在本地存储库中,稍后在程序集插件中将其引用为 ZIP。 【参考方案1】:

详细说明 Tomasz 的评论,您可以执行以下操作来实现此目的。

    下载并安装 tomcat 到您的本地存储库。

    mvn install:install-file -DgroupId=org.apache -DartifactId=tomcat -Dversion=7.0.10 -Dpackaging=zip -Dfile=/path/to/file

    使用maven dependency pluginunpack目标将tomcat解压到工作文件夹

    使用maven assembly plugin将应用程序war放入webapps文件夹并创建一个zip文件

您可以参考this pom.xml 和this 程序集描述符。

【讨论】:

谢谢拉古拉姆。虽然我还没有尝试过,但看看你提供的链接,似乎 maven 依赖插件是要走的路 项目在github有没有更好的办法? (而不是要求贡献者下载和安装 tomcat)【参考方案2】:

Heroku documentation 中指定的更好方法可能是(尽管它也应该适用于非 Heroku 应用程序)

总结一下(以防万一链接失效)

Tomcat 嵌入包可以给你一个Tomcat API,你可以在你的一个主类中引用它,

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-core</artifactId>
    <version>$tomcat.version</version>
</dependency>

你需要一个类似的主类,

package launch;

import java.io.File;
import org.apache.catalina.startup.Tomcat;

public class Main 

    public static void main(String[] args) throws Exception 

        String webappDirLocation = "src/main/webapp/";
        Tomcat tomcat = new Tomcat();
        tomcat.setPort(8080);

        tomcat.addWebapp("/", new File(webappDirLocation).getAbsolutePath());
        System.out.println("configuring app with basedir: " + 
            new File("./" + webappDirLocation).getAbsolutePath());

        tomcat.start();
        tomcat.getServer().await();
    

【讨论】:

以上是关于netty和tomcat如何一起使用??的主要内容,如果未能解决你的问题,请参考以下文章

使用Webflux和Spring Cloud时如何用netty替换tomcat?

Tomcat学习总结——Tomca常用配置详解

Netty 框架或如何将其与 AsyncTask 一起使用

Tomca杂记

tomcat nio 为啥不比netty

JMeter测试,提高Tomca性能,链接池