【发布时间】:2015-11-28 03:19:38
【问题描述】:
我正在做一个 REST 应用程序。我已经毫无问题地制作了GET 方法,但是,当我实现POST 方法时,它说我没有为它实现OPTIONS 方法。我正在为 URI 使用 OPTIONS 方法:
http://192.168.1.26:8080/sellAppWeb/api/object/
我有 POST 和 OPTIONS 方法:
@OPTIONS
@Produces("application/json; charset=UTF-8")
public Response options() {
return Response.ok().build();
}
@Override
@POST
public Response save(CervejaDTO cervejaDTO) {
cervejaController.register(cervejaDTO);
return Response.ok(cervejaDTO).build();
}
然后我创建了DELETE 方法,它再次说我没有OPTIONS 方法。然后我需要创建另一个OPTIONS 方法,它在URI 端有一个ID。比如用id = 3删除一个对象:
http://192.168.1.26:8080/sellAppWeb/api/object/3
我需要另一个OPTIONS 与DELETE URI 结构相同:
@OPTIONS
@Path("/{id}")
@Produces("application/json; charset=UTF-8")
public Response optionsDelete(@PathParam("id") Integer id) {
return Response.ok().build();
}
@Override
@POST
public Response save(CervejaDTO cervejaDTO) {
cervejaController.register(cervejaDTO);
return Response.ok(cervejaDTO).build();
}
有没有人可以为所有 REST 请求做一个通用的OPTIONS?
web.xml:
<display-name>Testes de serviços REST</display-name>
<description>Testes de serviços REST</description>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/api</param-value>
</context-param>
<context-param>
<param-name>resteasy.providers</param-name>
<param-value>br.com.sell.app.exception.handler.DefaultExceptionHandler</param-value>
</context-param>
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
【问题讨论】:
-
你是什么意思 它说没有为它实现 OPTIONS 方法?
-
当我发出 POST 或 DELTE 请求时,应用程序会自动发出 OPTIONS 请求。
标签: java rest jakarta-ee jax-rs resteasy