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:
[WARNING] !RequestLog
[INFO] Started SelectChannelConnector@0.0.0.0:8088
[INFO] Started Jetty Server
現在是:2017-12-23 16:46:20
大家晚上好~ -|-_-|-