最近的案子使用到Restful Web Service,
網路上找了一些關於Jersey + Tomcat 開發 RESTful Web Service的教學,
但實際照圖施工,總是讓我一次次失望,run不起來,
後來發現,原來是因為版本不同,Jersey套件放的名稱已經改變,
所以這邊整理一下最新的設定方式。
附帶一提,必須run在Tomcat 6.0才行,5.5版本會有Exception出現:
Caused by: java.lang.ClassNotFoundException: javax.persistence.PersistenceUnit
至於原因,若有哪位高手願意指教,十分感謝。 ^^
底下簡單列一下目前所使用的版本:
- Eclipse 3.5
- Tomcat 6.0.22
- Jersey 1.1.2
這裡提供Jersey套件官網下載連結: 點此下載
首先建立一個Dynamic Web Project,假設我這邊命名RestfulDemo
將底下四個Jersey的jar檔放到classpath下,也就是WEB-INF/lib/下,在下試過,缺一不可,會有Exception
asm-3.1.jar
jersey-core-1.1.2-ea.jar
jersey-server-1.1.2-ea.jar
jsr311-api-1.1.jar
設定web.xml,加上下面設定
<servlet>
<servlet-name>ServletAdaptor</servlet-name>
<servlet-class>com.sun.jersey.server.impl.container.servlet.ServletAdaptor</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletAdaptor</servlet-name>
<url-pattern>/resource/*</url-pattern>
</servlet-mapping>
建立下面Rest程式
package demo.rest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("/helloworld") // sets the path for this service
publicclass HelloRS {
@GET
@Produces("text/html") // content type to output
public String getClichedMessage() {
return"Hello World";
}
}
Delpoy到Tomcat,並用Browser到下列網址,Enjoy : )
http://127.0.0.1:8080/RestfulDemo/resource/helloworld
至於Restful程式撰寫教學,個人覺得,Sun寫的RESTful Web Services Developer’s Guide寫的蠻不錯的,簡單易懂,還蠻容易入門的。