前言
本人一直開發Android應用,目前Android就業形勢惡劣,甚至會一路下滑,因此決定學習服務器開發。采用的語言是java,IDE是Intellij,在下載Intellij的同時看到官網很多優秀的guide文章,於是按照guide成功完成了一個RESTful的demo。官方文檔非常簡潔,給我帶來了很大的幫助,於是翻譯之,希望對其他不願意看原文的人有所幫助。由於水平有限,讀者發現錯誤請指正,謝謝。
原文地址:
准備工作
- 確定你正在使用的IDE是Intellij Ultimate版本。
- 安裝jdk,版本為1.8或更高。
- 下載GlassFish Appcation Server,版本為3.0.1或者更高。
- 確定瀏覽器在你的電腦上是可用的。
在Intellij中配置GlassFish server
- 打開Settings/Preferences對話框(Windows或Linux 平台通過快捷ctrl+alt+s或者選擇File|Settings,OS X選擇Intellij IDEA|Preferences),並且點擊Build,Execution,Deployment下的Applicaton Servers。
- 打開Application Servers頁面,點擊中間欄上部的“+”圖標從列表中選擇GlassFish Server。
- 在右邊欄,GlassFish Home一欄指定GlassFish Server安裝文件夾。手動輸入路勁或者在點擊“...”彈出的對話框中選擇安裝文件夾。Intellij IDEA檢測application server的版本並且自動填充到Name一欄。其他的區域都是自動填充或者可選的,此時點擊OK。
配置JDK
- 按ctrl+shift+alt+s或者選擇主菜單中的File|Project Structure。
- 在Project Structure對話框中,選擇Platform Settins下的SDKs。
- 在打開的SDKs上點擊中間欄上部的“+”並且選擇JDK。
- 在右邊欄指定JDK安裝文件夾。手動輸入路勁或者點擊“...”彈出對話框選擇安裝文件夾。Intellij IDEA檢測JDK的版本並且自動填充到Name一欄。
其他tabs的所有必填項會被自動填充上,此時點擊OK。
創建項目
- 在歡迎界面點擊Create New Project,或者在主菜單中選擇File|New|Project。打開New Project向導。
- 首先,Project Category and Options頁面向導:第二,向導中的Project Name and Location頁面,指定你新項目的名字。點擊Finish並且等到直到Intellij創建好項目。
- 在左邊欄選擇Java Enterprise。
- 從Project SDK列表選擇使用的JDK。
- 從Application Server下拉列表中選擇GlassFish4.1.1。
- 從JavaEE Version下拉列表中選擇JavaEE7。
- 在Additional Libraries and Frameworks區域選中Web Application和RESTful Web Service復選框。
- 在Additional Libraries and Frameworks列表下發選擇Download選項。這個區域只有在你選擇了Web之后才會顯示。
- 點擊Next。
-
第二,向導中的Project Name and Location頁面,指定你新項目的名字。點擊Finish並且等到直到Intellij創建好項目。
探索項目結構
當項目已經創建好,在Project視圖下你可以看到類似這樣的結構:
(略過目錄結構介紹)
開發源碼
我的Hello World程序將包含一個資源類HelloWorld.java和一個配置類MyApplication。這個程序的功能僅僅是輸出一個文本Hello World。
- 在src文件夾創建HelloWorld.java類:
-
1 import javax.ws.rs.GET; 2 3 import javax.ws.rs.Path; 4 5 import javax.ws.rs.Produces; 6 7 8 9 // The Java class will be hosted at the URI path "/helloworld" 10 11 @Path("/helloworld") 12 13 public class HelloWorld { 14 15 // The Java method will process HTTP GET requests 16 17 @GET 18 19 // The Java method will produce content identified by the MIME Media type "text/plain" 20 21 @Produces("text/plain") 22 23 public String getClichedMessage() { 24 25 // Return some cliched textual content 26 27 return "Hello World"; 28 29 } 30 31 }
-
- 在src文件夾創建MyApplication.java類:
-
1 import javax.ws.rs.ApplicationPath; 2 3 import javax.ws.rs.core.Application; 4 5 import java.util.HashSet; 6 7 import java.util.Set; 8 9 10 11 //Defines the base URI for all resource URIs. 12 13 @ApplicationPath("/") 14 15 //The java class declares root resource and provider classes 16 17 public class MyApplication extends Application{ 18 19 //The method returns a non-empty collection with classes, that must be included in the published JAX-RS application 20 21 @Override 22 23 public Set<Class<?>> getClasses() { 24 25 HashSet h = new HashSet<Class<?>>(); 26 27 h.add( HelloWorld.class ); 28 29 return h; 30 31 } 32 33 }
-
檢查生成的artifact配置
除了構建一個具體的RESTful項目結構以外,Intellij IDEA也為我們配置了artifact。
IntelliJ IDEA中的artifact可能意味着以下之一:
- 一個artifact配置即項目輸出的規范。
- 根據這樣的規格(配置)生成的實際輸出。
讓我們看一下這個配置
- 在主菜單按ctrl+shift+alt+s或者選擇File|Project Structure打開Project Structure對話框。
- 在Proj Settings下選擇Artifacts。可用的artifact配置顯示在中間欄的“+”和“-”下面。當前只有一個配置rest_glassfish_hello_world:war exploded,它是一個解壓縮的Web應用程序存檔(WAR),一種准備部署到Web服務器上的目錄結構。
- Artifact設置顯示在右邊欄的對話框中:
IntelliJ IDEA已經填寫了所有必填項,不需要我們進行更改,所以只需單擊取消離開對話框。
探索並完成運行配置
在IntelliJ IDEA中,根據專用的run configuration啟動任何應用程序。在項目創建期間,我們已經指定GlassFish Server作為運行應用程序的應用程序服務器。基於此選擇和代碼中的注釋,IntelliJ IDEA創建了運行配置並填充了幾乎所有必填項。
- 選擇主菜單的Run|Edit Configuration或者點擊Shif+Alt+F10並在彈出菜單中選擇Edit Configuration。
- 在打開的Edit Configuration對話框中,展開GlassFish Server節點並且點擊GlassFish4.1.1。 右邊欄顯示自動生成的運行配置的設置。
-
- Application Server字段顯示GlassFish4.1.1,它是在項目創建期間選擇的GlassFish Server安裝的。Name字段也顯示GlassFish4.1.1,在指定應用服務器后IntelliJ IDEA已自動命名生成的配置。
- 在Open brower區域,After launch復選框已經被選中,所以具有應用程序輸出的頁面將自動打開。在下面的文本區,我們需要指定被打開頁面的URL地址。在我們的例子中是http://localhost:8080/rest_glassfish_hello_world_war_exploded/helloworld。
- 為了rest_glassfish_hello_world:war exploded自動部署啟動運行配置,該artifact必須被標記為部署。如果你已經成功完成項目創建步驟,該artifact會被標記為自動部署,否則Intellij IDEA顯示警告No artifacts marked for deployment和一個Fix按鈕。
- 當你點擊Fix時,Intellij IDEA打開Deployment欄,其中rest_glassfish_hello_world:war exploded被添加到Deploy on the server starup列表中。
所有的其他字段會被自動填充上或是可選項,所以點擊OK保存運行配置。
運行應用程序
點擊工具欄上的,之后:
- Intellij IDEA編譯你的源碼並且構建一個應用程序。
- Run Tool Window打開。 IntelliJ IDEA啟動服務器並在其上部署。
- 最后,你默認的web瀏覽器啟動,然后你看到應用程序輸出的Hello World。