前言html
本人一直開發Android應用,目前Android就業形勢惡劣,甚至會一路下滑,所以決定學習服務器開發。採用的語言是java,IDE是Intellij,在下載Intellij的同時看到官網不少優秀的guide文章,因而按照guide成功完成了一個RESTful的demo。官方文檔很是簡潔,給我帶來了很大的幫助,因而翻譯之,但願對其餘不肯意看原文的人有所幫助。因爲水平有限,讀者發現錯誤請指正,謝謝。java
原文地址:web
https://www.jetbrains.com/help/idea/2016.3/creating-and-running-your-first-restful-web-service-on-glassfish-application-server.html瀏覽器
準備工做服務器
- 肯定你正在使用的IDE是Intellij Ultimate版本。
- 安裝jdk,版本爲1.8或更高。
- 下載GlassFish Appcation Server,版本爲3.0.1或者更高。
- 肯定瀏覽器在你的電腦上是可用的。
在Intellij中配置GlassFish serverrestful
- 打開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。
配置JDKapp
- 按ctrl+shift+alt+s或者選擇主菜單中的File|Project Structure。
- 在Project Structure對話框中,選擇Platform Settins下的SDKs。
- 在打開的SDKs上點擊中間欄上部的「+」而且選擇JDK。
- 在右邊欄指定JDK安裝文件夾。手動輸入路勁或者點擊「...」彈出對話框選擇安裝文件夾。Intellij IDEA檢測JDK的版本而且自動填充到Name一欄。
其餘tabs的全部必填項會被自動填充上,此時點擊OK。
建立項目ide
- 在歡迎界面點擊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。