首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建(部署)多项目?

如何创建(部署)多项目?
EN

Stack Overflow用户
提问于 2017-01-17 17:59:47
回答 1查看 30关注 0票数 0

我有三个池(应用程序),它们依次转换数据,并通过套接字(或get,post -算了)相互通信。我有servlet,它接受数据并将数据传输到启动池之一。我如何在一个容器(tomcat,通配符)中运行所有这些?做3罐,1件战争神器还是别的什么?这应该写在pom.xml中吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-17 19:04:12

好吧,模块之间的沟通很重要:

  • 如果您对它们通过直接的本地 API调用进行通信感到满意,则必须构建包含这三个模块的单个war (通常每个模块一个JAR )。
  • 但是,如果您想要一个分布式应用程序,通信应该是远程(通过套接字、RMI、HTTP、ReST等等)。通过这种方式,您可以为每个模块构建一个程序集:如果模块包含servlet/JSP,则应该是WAR;如果没有,则应该是JAR。

在Maven中,这意味着:

  1. 创建一个包含所有模块的父项目,其中包含packaging=pom,并为每个模块创建一个<module>声明。
  2. 然后,为每个模块创建一个模块项目(在父模块内),使用package=jarwar (取决于上面的分离)。
  3. 设置它们之间的适当依赖关系,以防您需要公开它们的公共API作为相互通信的方式。

根据每个模块的类型(如@Carlitos方式的注释)部署和启动每个模块也很重要:

  • WAR必须部署到servlet容器中(例如Tomcat)。
  • 可以使用shell脚本从命令行启动JAR。

启动侦听端口的应用程序

每个非web模块都应该有一个主类,它将负责从命令行接收所需的参数(至少是端口号)并启动侦听类--不管它是什么。

代码语言:javascript
运行
复制
package module.cmd;

public class MyMainClass
{
    public static void main(String[] arguments)
    {
        int port=Integer.parseInt(argument[0]);
        new MyListener(port).start();
    }
}

要运行它,执行以下操作就足够了:

代码语言:javascript
运行
复制
mvn exec:java -Dexec.mainClass="module.cmd.MyMainClass" -Dexec.args="8001" 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41703942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档