idea/eclipse下Maven工程整合web服務(tomcat、jetty)

funnyZpC發表於2017-12-23

 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>

應為上面兩個服務的配置我是在兩個不同的工程下,遂各位需要視自己的專案來配置裡面的urlpath引數,不然專案無法執行可就不好了。

配置完外掛,接下來就需要用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:

[WARNING] !RequestLog

[INFO] Started SelectChannelConnector@0.0.0.0:8088

[INFO] Started Jetty Server

 

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

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

相關文章