idea/eclipse下Maven工程集成web服务(tomcat、jetty)

 idea/eclipse下Maven工程集成web服务

转载请注明出处http://www.cnblogs.com/funnyzpc/p/8093554.html

应用服务器最常用的一般有这哥仨:tomcat、jetty、webLogic ,前两者开源属轻量级应用服务器,适用于一般项目开发环境和生产环境,后者则是收费的、企业级、大型应用服务器;这三者个人都用过,一般做中小型项目的时候IDE集成jetty来调试和开发,tomcat做生产环境服务,至于webLogic我只在银行的一些项目中用到,一般部署在linux服务器上,需要使用命令启动服务,万幸的是组件配置的时候是在webLogic的web服务中配置(其中包括数据源、日志、外部依赖、集群、分布式。。。),遂将webLogic用于本地开发着实不便,嗯,好吧,本章我就讲讲本地开发如何集成jetty或tomcat服务。

  不管是idea还是eclipse,对于项目运行大致有两种配置方式≡(▔﹏▔)≡:

 A>一种是IDE集成web服务

    B>一宗是项目集成web服务

    C>通过main方法启动工程(这里不讲)

  IDE集成web服务的好处就是不管任何项目我都可以用本地web服务器跑起来,但,可能会出现一个问题是:如果IDE中运行多个工程(有老工程有新工程的话)会造成服务运行失败,这个问题我着实碰到过,不过大多数情况下都没问题的~,既然聊到IDE集成tomcat,那就讲一下如何配置吧,Let's go=>

首先需要从官网下载web服务软件(这里以tomcat为例,jetty同tomcat):

可以看到Core中有好几项,第一个zip和tar包的版本均可用于windows或linux版本,需要解压后使用,第三第四第五个分别是专用于32位系统的windows系统版本(需解压使用)、64位的Windows系统版本(需解压使用)、32/64位安装版本(无需解压,安装后会自动添加tomcat服务,多用于windows系统下生产环境)。

 接下来eclipse配置tomcat:

以上配置的时候需要对应下载的tomcat的版本,然后就是配置服务名称、tomcat目录位置、jre:

点完finish后选择run下面的“run configurations...”选项:

好了,项目这就跑起来了\(0^◇^0)/,嗯,这里会有个问题,如果是多个项目的话端口肯定会冲突,如果同时运行的话肯定会失败的,对于端口的配置需要在tomcat的server.xml中配置,修改起来十分的麻烦,至于同时运行,个人也找了很多方法,但都以失败告终,其实这个问题并不是无解,接下来看如何在工程里面集成tomcat插件,可以配置任意端口,服务多开也不会报错!

  工程集成tomcat的好处有很多:版本可随时更改、端口可任意配置且工程拷贝到其他用户的IDE下直接配置运行就可以跑起来了,是不是很easy,just do it ==>

首先,需要在Maven的配置文件pom.xml中添加一个插件(在plugins中):

 1             <!-- maven集成tomcat运行 -->
 2             
 3             <plugin>
 4                 <groupId>org.codehaus.mojo</groupId>
 5                 <artifactId>tomcat6-maven-plugin</artifactId>
 6                 <version>1.1</version>
 7                 <configuration>
 8                     <path>/thirdDemo</path>
 9                     <port>8089</port>
10                     <uriEncoding>UTF-8</uriEncoding>
11                     <url>http://localhost:8089/thirdDemo/student/listStudent</url>
12                     <server>tomcat6</server>
13                 </configuration>
14             </plugin>

如配置jetty,请添加这一段:

 1 <plugin>
 2         <groupId>org.eclipse.jetty</groupId>
 3         <artifactId>jetty-maven-plugin</artifactId>
 4         <version>9.4.8.v20171121</version>
 5         <configuration>
 6           <httpConnector>
 7             <port>9092</port>
 8           </httpConnector>
 9           <stopKey>shutdown</stopKey>
10           <stopPort>9099</stopPort>
11           <webAppConfig>
12             <contextPath>/</contextPath>
13             <!--<contextPath>/${project.artifactId}</contextPath>-->
14           </webAppConfig>
15         </configuration>
16       </plugin>

应为上面两个服务的配置我是在两个不同的工程下,遂各位需要视自己的项目来配置里面的url和path参数,不然项目无法运行可就不好了。

配置完插件,接下来就需要用maven中配置命令就可以无痛运行了啦~(●'◡'●)ノ♥:

项目是不是跑起来了,如果配置的是jetty,请使用“jetty:run"命令。

如果用的是idea,需要这样配置才可运行:

如果是工程集成web服务,请参照此配置:

如果是IDE集成web服务,请参照如下配置,配置完成后点击运行按钮即可将工程跑起来:

是不是巨简单,有木有~?

舒心的事情讲完了,该讲讲我所填过的坑~⊙﹏⊙=>

A>上面已经提到过了,如果在同一个IDE下是不能用IDE集成的的web服务同时跑>1个项目

B>如果在苹果Mac电脑下配置web服务的端口,端口不能是四位数以下的端口,不然跑不起来

C>一定要视项目的新旧程度和所用的jdk版本选择合适的web服务版本,一般,大致的原则是:用较高版本的web服务跑较低版本的工程,不然会出现很奇怪的运行错误

D>如果是工程集成web服务,使用tomcat,那么tomcat的版本只有tomcat7版本可用(这是最高的插件版本),若是jdk8及以上的工程请绕道使用jetty,切记切记!

最后给个成功运行的log:

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco }

[WARNING] !RequestLog

[INFO] Started SelectChannelConnector@0.0.0.0:8088

[INFO] Started Jetty Server

现在是:2017-12-23 16:46:20

大家晚上好~ -|-_-|-

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java编程技术

Dubbo剖析-集群容错

在进行系统设计时候,不仅要考虑正常逻辑该如何走,还要考虑异常逻辑。dubbo中当服务消费方调用服务提供方的服务出现错误时候,提供了多种容错方案,缺省为 fail...

21810
来自专栏Brian

Install Django Nginx uWSGI

概述 最近项目需要安装和配置多站点环境,所以把多站点开发环境配置和安装记录下来,帮助其他人少走坑。 安装Python 2.7.x 首先安装一些开发环境基本的包和...

41090
来自专栏Java架构沉思录

每天学点Linux命令之umask

在进入今天的主题之前,我们先来回顾一下Linux文件权限的相关知识点。Linux里的文件权限可分为3组,分别是文件拥有者、同个群组的其他用户、不同群组的其他用户...

7210
来自专栏机器学习算法与Python学习

手册 | Linux 运维人员最常用 150 个命令汇总

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 本周六送5本《TensorFlow实...

32660
来自专栏数据派THU

收藏 | Linux常用156个命令汇总!

来源:机器学习算法与Python学习 本文为大家带来Linux系统中156个常用的命令。 linux命令是对Linux系统进行管理的命令。对于Linux系统来说...

533120
来自专栏程序员互动联盟

【编程基础】linux常用命令介绍(一)

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecod...

429110
来自专栏Samego开发资源

ubuntu动态一键切换python版本

25540
来自专栏Dato

Maven的作用是什么

现在我们开发的项目基本上都是maven项目,maven项目也是一个项目,类似于javaProject,javaWebProject,就是多了些功能。 那就说说究...

364110
来自专栏Java架构沉思录

每天学点Linux命令之umask

在进入今天的主题之前,我们先来回顾一下Linux文件权限的相关知识点。Linux里的文件权限可分为3组,分别是文件拥有者、同个群组的其他用户、不同群组的其他用户...

11910
来自专栏华章科技

收藏 | Linux常用156个命令汇总!

linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的...

21720

扫码关注云+社区

领取腾讯云代金券