java - 无法在 Controller 的方法中使用带有附加参数的 HttpServletRequest

标签 java jersey

当我将 HttpServletRequest 作为参数之一添加附加参数时,我无法使 Controller 工作。以下代码可以编译并且没有出现异常。

@POST
@Path("new")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.TEXT_PLAIN)
public String create(HttpServletRequest request) {

}

但是,当我添加附加参数时,会引发异常。

@POST
@Path("new")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.TEXT_PLAIN)
public String create(HttpServletRequest request,  ClientDto clientDto) {

}

异常(exception)情况如下:

[[FATAL] Method public java.lang.String CreditController.create(
javax.servlet.http.HttpServletRequest,dto.ClientDto) on resource class CreditController
contains multiple parameters with no annotation.
Unable to resolve the injection source.;

最佳答案

根据@GyroGearless的建议:

似乎缺少@Context注释,你可以尝试这样,

@POST
@Path("new")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.TEXT_PLAIN)
public String create(@Context HttpServletRequest request, ClientDto clientDto) {

关于java - 无法在 Controller 的方法中使用带有附加参数的 HttpServletRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51419603/

相关文章:

java - Jersey 2 请求过滤器在此代码中不起作用

java - Jersey JAX-RS,Swagger - 生成 swagger.json 但没有 UI

java - XMLRootElement 在 Jersey 中将类转换为 XML

java - OpenJPA、 Jersey 、JUnit : Using a different persistence unit for my unit tests?

java - 循环后如何将这些单词构建为一个句子?

java - "java.security.NoSuchAlgorithmException: SHA3-384 MessageDigest not available"与 Java 9

java - 将 Android 应用程序从我的手机复制到我的电脑

java - 哪个写入文件速度更快?

休息 - Jersey.Client 将@SecurityContext 传递给服务器

java - 使用 Jersey 在 REST 服务中上传多个文件