当前位置: 首页 > 知识库问答 >
问题:

当@RequestParam抛出MissingServletRequestParameterException时如何打印URL

司徒鸿文
2023-03-14

这是一个Spring项目。我使用下面的代码来处理传入的http GET请求,它的格式是http://xxx.comm/vasttracking?rtbprovider=AAA&adgroupkey=bbb&transactionid=ccc&event=ddd。当服务器运行时,大多数请求都得到了正确的处理,但有些会引发异常--大多数是

unhandled exception
org.springframework.web.bind.MissingServletRequestParameterException: Required VastEventType parameter 'event' is not present.

在很少的情况下,它们是“String无法转换为类型VastEventType”,或者“参数adGroupKey未显示”。

看起来传入请求的URL有时会被修剪。请求URL是由我的系统提供的,所以它不应该丢失,尽管它是由用户的视频播放器发送的。我想知道这是如何发生的,所以我想要一种在抛出异常时打印出URL的方法。到目前为止,我只是找到了打印所有传入URL的方法。

我的代码:

@Controller
public class VastEventTrackingController {
  @RequestMapping(method = RequestMethod.GET, value = "/vastTracking")
  public ResponseEntity<String> vastEventTrack( @RequestParam("rtbProvider") String strRtbProvider,
                                                @RequestParam("adGroupKey") String strAdGroupKey,
                                                @RequestParam("transactionId") String strTransactionId,
                                                @RequestParam("event") VastEventType event,
                                                HttpServletRequest request) {
    ...
  }
..
}

共有1个答案

空夕
2023-03-14

默认情况下,所有请求参数都是required。参见spring Doc。如果要使它们可选,则应设置required=false

@RequestParam(value = "event",required = false) VastEventType event
 类似资料:
  • 我们使用带有Log4j的springaop来登录我们的应用程序。我在应用程序中实现了@Before、@After、@posterhrowing建议。但我面临以下问题: 当任何异常在catch块中被捕获时,它不会调用@afterhrowing通知来打印错误堆栈跟踪。 我想为catch块中捕获的异常打印“错误堆栈跟踪”。意味着无论何时在try块中发生任何异常并被catch捕获,都应该调用一些建议来打印

  • 嘿,我想打印出飞机存储。飞机存储包含字符串和航班的哈希图。这就是flight.add/print进入主端的地方。但我现在希望航空公司和航班并行打印,所以我把航空公司商店和我试图打印出PlaneStore以及航空公司,但我得到的只是一个内存地址,有人能帮我吗?

  • 我正在使用Zebra iMZ320打印机、windows mobile设备、CPCL和vb.net。 我试图让代码加载位图图像,然后使用CPCL打印它 我有一段类似于下面的代码,可以毫无问题地工作。我一定错过了一些显而易见的东西,但就我的一生而言,我看不到它。 我的问题是打印机只会打印出HEX而不是图像!以前有人遇到过这个吗?你能帮忙吗? 公共子绘制位图(ByVal xPosition为整数,By

  • 我使用4与接收表单帖子。我已经按照这里给出的提示做了它,它在中运行良好。 但是,我现在想用将内容发布到我的服务器上,我找不到被接受的方法。我总是得到以下例外:org。springframework。网状物绑定MissingServletRequestParameterException:所需的字符串参数“文件”不存在 我试图混合来自的和来自的选项,但它似乎不相关。 因此,给定以下,应该执行什么命令

  • 问题内容: 我有这样的方法: 我想抛出一个内。编译器不允许我这样做,因为不允许将我的方法扔在那里。但是我需要抛出一个的子类来进行测试 (我不能抛出Unchecked)。显然这是一个hack,但我需要进行测试。我尝试过EasyMock,但它也不允许我这样做。任何想法如何做到这一点? 谢谢,肖恩·阮 问题答案: 方法1: Alexey Ragozin的这篇文章介绍了如何使用泛型技巧引发未声明的检查异常

  • 问题内容: 对于此函数,运行后,输出将为2,5,7 .... 9,我的问题是如何删除最后一个逗号? 问题答案: 我会在一开始打印逗号,像这样-