本文參考如下內容:html
使用Jersey實現RESTful風格的webservice(一)java
Starting out with Jersey & Apache Tomcat using IntelliJweb
--------------------------------------------------正文--------------------------------------------------------------apache
1、在IntelliJ中建立新項目,選擇Java Enterprise -> RESTful Web Service -> Setup libery later.json
2、建立完項目JerseyDemo後,對項目點擊右鍵 -> Add Frameworks Support,分別勾選Web Application和Maven。其中,web appication爲項目增長了web.xml,maven爲構建工具。windows
完成以後項目的文件結構以下:api
3、在pom.xml中加入jersey和jetty依賴:瀏覽器
<dependencies> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-bundle</artifactId> <version>1.19.1</version> </dependency> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId> <version>6.1.25</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-json</artifactId> <version>1.19</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-servlet</artifactId> <version>1.19.1</version> </dependency> </dependencies>
4、在src/main/java/下建立package和類,這裏我建立了一個HelloJsersy類,代碼以下:tomcat
package com.puyangsky.example; import javax.ws.rs.*;
//Path註解來設置url訪問路徑 @Path("/hello") public class HelloWorld {
//GET註解設置接受請求類型爲GET @GET
//Produces代表發送出去的數據類型爲text/plain
//與Produces對應的是@Consumes,表示接受的數據類型爲text/plain
@Produces("text/plain") public String getString() { return "hello jersey!"; } }
接着使用Jetty建立一個服務器類StartEntity.java:服務器
1 package com.puyangsky.example; 2 3 import com.sun.jersey.api.core.PackagesResourceConfig; 4 import com.sun.jersey.spi.container.servlet.ServletContainer; 5 import org.mortbay.jetty.Server; 6 import org.mortbay.jetty.servlet.Context; 7 import org.mortbay.jetty.servlet.ServletHolder; 8 9 /** 10 * Created by user01 on 2016/4/8. 11 */ 12 public class StartEntity { 13 public static void main(String[] args) { 14 Server server = new Server(8090); 15 ServletHolder sh = new ServletHolder(ServletContainer.class); 16 sh.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", PackagesResourceConfig.class.getCanonicalName()); 17 sh.setInitParameter("com.sun.jersey.config.property.packages", "com.puyangsky.example"); 18 //start server 19 Context context = new Context(server, null); 20 context.addServlet(sh, "/*"); 21 try { 22 server.start(); 23 server.join(); 24 } catch (Exception e) { 25 e.printStackTrace(); 26 } 27 28 } 29 }
紅色字體標出的第一個是端口號,能夠本身設置,第二個是須要你本身修改的,即第一個HelloJersey.java所在的包名。
ok,點擊右鍵,Run "StartEntity.main()"
5、在瀏覽器中訪問http://localhost:8090/hello,或使用IntelliJ中的Test RESTful Web Service,結果以下:
大功告成!
------------------------------------------------------一些小建議------------------------------------------------
一、IntellJ的快捷鍵:
神器之因此是神器,固然有不同的地方,好比咱們想寫一個main方法,不用輸入一大串,只要輸入「psvm」,回車,搞定!
相似的還有輸出,只要輸入「souf」,右鍵。類的還有不少,本身去慢慢發現。
二、Jetty佔用了端口號沒有釋放,每次都換一個端口號很麻煩,那麼應該怎麼辦?
由於我是在windows7上作的,那麼win+R打開DOS命令行,輸入netstat -ano | findstr "8090":
最後一欄爲進程ID,pid.因此只要kill掉就ok了,接着輸入:taskkill /PID 12336 /F
結果:
這裏由於12236已經掛了因此換了個PID,效果同樣。
Jersey的更多使用將在下一篇博客中繼續介紹。