Java Jersey 配置
此示例說明如何配置 Jersey,以便你可以開始將其用作 RESTful API 的 JAX-RS 實現框架。
假設你已經安裝了 Apache Maven ,請按照以下步驟設定 Jersey:
- 建立 maven web 專案結構,在終端(windows)中執行以下命令
mvn archetype:generate -DgroupId = com.stackoverflow.rest -DartifactId = jersey-ws-demo -DarchetypeArtifactId = maven-archetype-webapp -DinteractiveMode = false
注意: 要支援 Eclipse,請使用 Maven 命令: mvn eclipse:eclipse -Dwtpversion = 2.0
- 轉到建立 maven 專案的資料夾,在 pom.xml 中新增所需的依賴項
<dependencies>
<!-- Jersey 2.22.2 -->
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>${jersey.version}</version>
</dependency>
<!-- JSON/POJO support -->
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>${jersey.version}</version>
</dependency>
</dependencies>
<properties>
<jersey.version>2.22.2</jersey.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
- 在 Web.xml 中,新增以下程式碼
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<!-- Service or resources to be placed in the following package -->
<param-value>com.stackoverflow.service</param-value>
</init-param>
<!-- Application configuration, used for registering resources like filters -->
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.stackoverflow.config.ApplicationConfig</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Url mapping, usage-http://domainname:port/appname/api/ -->
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
ApplicationConfig
級
public class ApplicationConfig extends ResourceConfig {
public ApplicationConfig() {
register(OtherStuffIfNeeded.class);
}
}
還應該注意的是,如果你想不使用 web.xml,你可以簡單地刪除它,並在 ApplicationConfig
類之上新增 @ApplicationPath("/api")
。
@ApplicationPath("/api")
public class ApplicationConfig extends ResourceConfig {
public ApplicationConfig() {
// this call has the same effect as
// jersey.config.server.provider.packages
// in the web.xml: it scans that packages for resources and providers.
packages("com.stackoverflow.service");
}
}
- 構建和部署你的 maven 專案。
- 你現在可以設定 Java RESTful Web 服務(JAX-RS)類來使用 Jersey 的 jar。