社群版的IntelliJ IDEA上配置Tomcat的Debug環境
阿新 • • 發佈:2019-02-14
故事背景
公司的開發環境在遠端ucs2機器上,用的開發工具是社群版的idea,沒有tomcat等企業級高階功能,況且不能上外網(有自己的私服倉庫),而我又不想每次都用遠端debug測試、排除問題,我記得上家公司是內嵌到專案中的jetty容器,這裡不適用,所有我選擇了Tomcat的Maven外掛來彌補這個“不習慣”。只需要做以下幾步:
第一步:修改pom.xml
<plugins>
內新增:<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId
port
18888
,;
contextFile
: 指定tomcat的配置的上下文資訊,我的專案是src/main/webapp/META-INF/context.xml
因為我們的專案中引入了
javax.servlet-api
,我在測試過程中發現這個會導致啟動報錯,故我這裡將scope
設定成provided,以避之。<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version
第二步:修改context.xml
第三步:修改log4j.xml(無該需求,請略過)
如果你想要在除錯的時候將日誌列印在IDEA控制檯上,請確保<root>
中有ConsoleAppender
的引用,本檔案已經配置好ConsoleAppender
,被命名為Appender1
,故可以直接引用如下:
<root>
<priority value="INFO"/>
<appender-ref ref="Appender2"/>
<appender-ref ref="Appender1"/>
</root>
第四步:配置服務啟動
點選進入此路徑:
RUN->Edit Configurations...
然後點選左上角
+
,選擇Maven
,填寫配置,請按照途中圈出的4處進行填寫。
Command line: tomcat7:run
Runner(去掉
User Project settings
的勾)- VM Options: 設定必要的啟動引數
- 如果需要跳過test,可以直接勾選Skip tests
第五步:執行啟動命令
選擇上一步配置的maven外掛,點選Debug
按鈕,最後列印如下,即成功
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tomcat7 ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] <<< tomcat7-maven-plugin:2.2:run (default-cli) < process-classes @ tomcat7 <<<
[INFO]
[INFO] --- tomcat7-maven-plugin:2.2:run (default-cli) @ tomcat7 ---
[INFO] Running war on http://localhost:18888/
[INFO] Using existing Tomcat server configuration at /**/**/**/**/test-tomcatService/target/tomcat
[INFO] create webapp with contextPath:
Jul 10, 2018 6:14:55 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-18888"]
Jul 10, 2018 6:14:55 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Tomcat
Jul 10, 2018 6:14:55 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.47
第六步: 測試
這裡利用在EmailController
上打上斷點,利用Postman進行api呼叫。結果如下圖
Test Request Data:
{
"request":{
"requestId":"957452",
"resourceId":"980767686",
"requesterName":"zhangsan",
"requestedFor":"lisi"
},
"eventType":"Failure"
}
提醒:
執行啟動命令時,可能會有下載外掛的過程,如果settings.xml中沒有配置repository
可能下載不了。我的settings.xml配置如下,僅供參考(因為是公司私服,所以不能示外人,自己替換下即可):
<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd"
xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>*********</host>
<port>80</port>
<nonProxyHosts>*.xx.com|localhost</nonProxyHosts>
</proxy>
</proxies>
<!-- 下面的所有配置都是為了idea配置tomcat外掛而新增的 -->
<profiles>
<profile>
<id>artifactory</id>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>xx-release</id>
<name>plugins-release</name>
<url>http://repo-xx.xx.com/xx/plugins-release</url>
</pluginRepository>
<pluginRepository>
<snapshots />
<id>xx-snapshots</id>
<name>plugins-snapshot</name>
<url>http://repo-xx.xx.com/xx/plugins-snapshot</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>