问题描述
我的代码中有一个 ProxyServlet (org.mitre.dsmiley.httpproxy),它执行一些操作并将某些以 */xyz 结尾的 url 转发到不同的应用程序。我有覆盖我的应用程序的集成测试(使用 JerseyTest 框架),并希望使集成测试通过代理 servlet。
目前我的测试用例部署配置如下:
ServletDeploymentContext.forServlet(new ServletContainer(internalConfigureResourceConfig(resourceConfig))).build()
现在,为了测试我的代理 servlet,如果我更改如下配置,
ServletDeploymentContext.forServlet(MyProxyServlet.class).build()
我无法在上面添加 url-pattern servlet-mapping,并且正在为所有 url 调用代理 servlet。有人能告诉我如何为
动态添加 url-mapping 配置吗?ServletDeploymentContext.forServlet
我已经检查了所有方法但无法这样做
解决方法
我明白我哪里出错了。当我添加以下语句时,
ServletDeploymentContext.forServlet(MyProxyServlet.class).build()
我添加 MyProxyServlet
作为唯一的“默认”servlet,因此即使我添加 servletPath() 作为 url-mapping 它也不起作用,因为这是唯一存在的 servlet。因此,即使不满足映射标准,每个请求也会发送到 servlet。
当我使用 servletPath 作为 /*
添加另一个 servlet 时,所有其他请求都转到其他 servlet 并且所需的请求到达我的 MyProxyServlet