如何使泽西的RESTful资源支持HTTPS

时间:2016-07-01 01:12:54

标签: java rest https jersey

我有一个服务器和客户端对。服务器是使用Jersey为RESTful API编写的。我在Tomcat服务器上运行它。它适用于HTTP GET / POST / DELETE调用。但我想使用HTTPS进行调用。我需要在服务器端更改什么?

<!-- language: lang-java -->
@Path("/article")
public class ArticleService {

EntityDao<Article> articleDao = new ArticleDaoImpl();

@GET
public Response greet() {
    return Response.ok("Welcome to restroshop APIs...").build();
}

@GET
@Path("/read/{id}")
@Produces("application/json")
public Response readArticle(@PathParam("id") final long id) {

    Article article = articleDao.read(id);
    return article != null ?
            Response.ok(article, MediaType.APPLICATION_JSON).build() :
            Response.noContent().build();
}

@POST
@Path("/create")
public long create(Article article) {
    return ((Long) articleDao.create(article));
}

@DELETE
@Path("/delete/{id}")
public Response delete(@PathParam("id") final long id) {
    articleDao.delete(id);
    return Response.ok("Article Deleted successfully").build();
}
}

我的web.xml如下:

<web-app>
<display-name>Restroshop Application</display-name>

<servlet>
    <servlet-name>Restroshop-servlet</servlet-name>
    <servlet-class>
        com.sun.jersey.spi.container.servlet.ServletContainer
    </servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.restroshop.application</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>Restroshop-servlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

我的客户端是一个Android应用程序。

1 个答案:

答案 0 :(得分:1)

您所展示的内容中,您的代码都不需要更改。但启用SSL取决于您的设置。如果你在Tomcat面前有Apache httpd,那么你需要从the Apache SSL docs开始。如果您只运行Tomcat,那么您需要查看the Tomcat SSL docs。这两个过程都有很好的文档记录。