- git clone https://github.com/WebGoat/WebGoat
- cd WebGoat
- docker run -it --rm --name mymaven -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3-jdk-11 mvn clean install
星期二, 1月 29, 2019
Build WebGoat in a temporary Docker Container
星期二, 1月 01, 2019
Java Restful WebServices
為了想在最少的準備之下開發 Java Restful WebServices,研究了以下的做法:
- 參考這篇與這篇所述,在 Docker 已安裝的前提下,藉由 Maven webapp plugin,不依賴任何 IDE,建立專案的目錄結構。需要在一個空的目錄下這命令(請自行替換適合的 groupId):
docker run -it --rm -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.acme -DartifactId=my-webapp - 將這群目錄、檔案的擁有權取回:
sudo chown -R `whoami`. my-webapp - 進入 my-webapp 子目錄,補上 src/main/java/com/acme/TestService.java,內容可參考這篇(如果用複製的話,要注意雙引號可能需要替換)。
- 續上,增加 servlet 與 servlet-mapping 補足 src/main/webapp/WEB-INF/web.xml 的內容,尤其要注意 param-value 與程式中所述的套件、所在路徑一致。
- 續上,增加三個 dependency 補足 pom.xml 的內容。若在意未來的路徑名稱,也可以增設 build/finalName。
- 再用 Maven 於 target 目錄產出 war 檔:
docker run -it --rm -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven mvn package
- 將 Tomcat 預設埠 8080 8443 都對應好:
docker run -d --name tomcat -p 8080:8080 -p 8443:8443 tomcat - 先確認瀏覽器訪問 8080 沒問題,再設法讓 Manager App 開起來,首先是修改 /usr/local/tomcat/conf/tomcat-users.xml 增加 manager-gui 角色的帳密;若要遠端訪問還有 /usr/local/tomcat/webapps/manager/META-INF/context.xml 要放寬 RemoteAddrValve。
- 登入 Manager App 之後,部署 war 上去,不論 http://localhost:8080/my-webapp 或 http://localhost:8080/my-webapp/rest/testservice 都應能得到正確內容。
- 準備 https 憑證與金鑰檔,放到 Docker Container 內,並參考這篇的說明修改 /usr/local/tomcat/conf/server.xml,對應的必要屬性至少有 certificateFile、certificateKeyFile 兩個,就可改由 https 8443 訪問取得結果。
星期五, 9月 01, 2017
Maven install reference
在舊版(3.0.5)mvn install 遇到以下問題:
如果我們明明在本地端 Maven Repositories 能找到那些 JAR,但以上的指令固執地只找遠端,可以這麼修正:
- [ERROR] ...
- The following artifacts could not be resolved:
- com.dummy:packageA:jar:1.0.0-SNAPSHOT,
- com.dummy:packageB:jar:1.0.0-SNAPSHOT
- ...
- Could not find artifact ... in snapshots (http://your.artifact.com/libs-snapshot)
如果我們明明在本地端 Maven Repositories 能找到那些 JAR,但以上的指令固執地只找遠端,可以這麼修正:
- rm ~/.m2/repository/com/dummy/packageA/1.0.0-SNAPSHOT/_maven.repositories
- rm ~/.m2/repository/com/dummy/packageB/1.0.0-SNAPSHOT/_maven.repositories
星期二, 1月 21, 2014
使用 Eclipse 瀏覽藉由 Maven 管理的專案原始碼
安裝設定需求
- JDK 最新版,不需設定環境變數等內容
- Eclipse for Java EE 最新版,會自動搜尋電腦上已安裝的 Java
- 不需額外安裝 Maven 或插件,使用內建版本即可
- 隨意新增一個 Maven 專案,groupId 與 artifactId 可以任意填寫,template 選預設的 quickstart 即可。
- 編輯 pom.xml,新增一個 dependency,groupId、artifactId、version 要填人家正式公佈的,例如 org.jasig.cas / cas-server-webapp / 3.5.2。存檔。
- 需有網路連線。
- 在專案上右鍵所出現的選單有 Maven -> Download Sources。
- 在 Maven Dependencies 展開可見相依的 Jar 檔,進一步展開即可見原始碼。
訂閱:
文章 (Atom)